外部認証を使用する - NICE DCV

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

外部認証を使用する

デフォルトでは、NICE DCV クライアント認証は基盤となるオペレーティングシステムに委譲されます。Windows NICE DCV サーバーでは、認証は に委任されます WinLogon。Linux NICE DCV サーバーの場合、認証は PAM に委譲されます。

外部認証サーバーを使用してクライアントを認証するように NICE DCV を設定することができます。その場合は既存の認証システムを使用できます。外部認証の場合は、NICE DCV で既存のログインメカニズムを活用し、認証を外部認証サーバーに委譲します。

外部認証は、DCV サーバーへのアクセス権を持つユーザーを検証して、セッションを作成できるようにします。システム認証とは異なり、独自の外部認証システムをそのように設定しない限り、基盤となる OS に対してユーザーを認証することはありません。

DCV セッションマネージャーには外部認証システムが組み込まれています。この機能を使用するには、DCV サーバーで auth-token-verifierパラメータにセッションマネージャーのアドレスを設定する必要があります。

外部認証サーバーを使用するには、以下が必要です。

  • ログインメカニズム — これは、ユーザーがログインに使用するフロントエンドメカニズムです。既存の認証情報検証システムを使用してユーザーを検証する機能と、トークンを生成して NICE DCV サーバーに提供できる機能を備えています。詳細については、「トークンの使用」を参照してください。

  • 認証サーバー — これは、ログインメカニズムによって生成されたトークンを認証するサーバーです。このサーバーでは、トークンを含む HTTP (S) POST リクエストを NICE DCV サーバーから受信し、必要な認証を実行して、応答を NICE DCV サーバーに送信できます。認証サーバーの実装の詳細については、「認証サービス要件」を参照してください。

  • NICE DCV サーバー設定 — NICE DCV サーバーは、外部認証サーバーが使用されるように設定する必要があります。詳細については、「NICE DCV サーバー設定」を参照してください。

NICE DCV サーバー設定

外部認証サービスが使用されるように NICE DCV サーバーを設定する必要があります。

Linux NICE DCV server
Linux で外部認証サーバーを指定する方法
  1. /etc/dcv/ に移動し、任意のテキストエディタで dcv.conf を開きます。

  2. [security] セクションにある auth-token-verifier パラメータを見つけて、既存の値を、外部認証サーバーの URL と通信用ポート (url:port 形式) に置き換えます。例えば、 を使用している場合はDcvSimpleExternalAuthenticator、 を指定しますhttp://127.0.0.1:8444

    auth-token-verifier セクションに [security] パラメータが存在しない場合は、次の形式を使用して手動で追加します。

    [security] auth-token-verifier=url:port
  3. ファイルを保存して閉じます。

Windows NICE DCV server
Windows で外部認証サーバーを指定する方法
  1. Windows レジストリエディタを開きます。

  2. HKEY_USERS/S-1-5-18/Software/GSettings/com/nicesoftware/dcv/ キーに移動します。

  3. セキュリティauth-token-verifierパラメータ で パラメータを見つけます。 security パラメータ

  4. 次のいずれかを行います。

    • 値のデータを使用する場合、外部認証サーバーの URL と通信用ポートを url:port 形式で入力します。

      例えば、 を使用している場合は DcvSimpleExternalAuthenticator、 を指定しますhttp://127.0.0.1:8444

    • セキュリティセクションにauth-token-verifierパラメータがない場合は、 に追加します PowerShell。「設定パラメーターの変更」を参照してください。

  5. Windows レジストリエディタを閉じます。

  6. NICE DCV サーバーを停止して再起動します。

トークンの使用

トークンを生成したら、それを NICE DCV サーバーに送信できます。ウェブブラウザクライアントで、次のようにトークンを接続 URL に追加します。

https://server_hostname_or_IP:port/?authToken=token#session_id

例:

https://my-dcv-server.com:8443/?authToken=1234567890abcdef#my-session

認証サービス要件

カスタム認証サービスは、NICE DCV サーバーの同一ホストで実行することも、別のホストで実行することもできます。認証サービスにより、NICE DCV サーバーからの HTTP (S) POST リクエストがリッスンされます。

NICE DCV サーバーで使用される POST リクエスト形式を以下に示します。

POST / HTTP/1.1 Content-Type: application/x-www-form-urlencoded sessionId=session_id&authenticationToken=token&clientAddress=client_address

認証サービスにより、指定されたトークンが有効かどうかが判断されます。

トークンの検証後、認証サーバーから NICE DCV サーバーにレスポンスが返されます。レスポンス本文には、認証プロセスの結果に応じて、次のいずれかを含める必要があります。

  • 認証が成功した場合、認証サービスから yes の結果とユーザー識別子が返されます。例:

    <auth result="yes"><username>username</username></auth>
  • 認証が成功しなかった場合、認証サービスから no の結果が返されます。例:

    <auth result="no"><message>message</message></auth>

DcvSimpleExternalAuthenticator

NICE DCV には、DcvSimpleExternalAuthenticator という基準外部認証サーバーが付属しています。DcvSimpleExternalAuthenticator は、独自のカスタム認証サーバーを作成するための出発点を使用できる単一の Python スクリプトです。

DcvSimpleExternalAuthenticator サーバーは HTTP と HTTPS をサポートしており、NICE DCV サーバーがインストールされているのと同じサーバーで実行する必要があります。デフォルトでは、 はポート でリクエストをDcvSimpleExternalAuthenticator リッスンします8444。必要に応じて、ポートを変更できます。これを行うには、任意のテキストエディタで /etc/dcv/simpleextauth.conf を開き、EXTAUTH_PORT パラメータを見つけて、既存の値を必要なポート番号に置き換えます。

を使用するには DcvSimpleExternalAuthenticator、 nice-dcv-simple-external-authenticatorパッケージをインストールする必要があります。詳細については、「NICE DCV サーバーのインストール」を参照してください。

簡易外部認証システムの使用

  1. 認証ディレクトリに移動します。

    sudo mkdir -p /var/run/dcvsimpleextauth

  2. 認証トークンを生成します。

    この例では、123456 はサンプル認証トークン、session-123 はサンプルセッション ID、username はユーザーです。

    echo "123456" | sudo dcvsimpleextauth add-user —session session-123 --auth-dir /var/run/dcvsimpleextauth/ --user username -append

  3. サーバーを起動します。

    sudo dcvsimpleextauth --port 8444 --auth-dir /var/run/dcvsimpleextauth/ start-server

  4. サーバーが起動したら、構成をテストして検証します。

    ここでも、この例を使用した場合、テストは次のように実行されます。

    curl -k http://localhost:8444 -d sessionId=session-123 -d authenticationToken=123456

    成功した場合は yes の認証結果が返されます。