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

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

外部認証を使用する

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

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

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

DCV Session Manager には、外部認証機能が組み込まれています。この機能を使用するには、DCVサーバーが Session Manager アドレスで auth-token-verifierパラメータを設定する必要があります。

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

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

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

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

Amazon DCV サーバー設定

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

Linux Amazon 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 Amazon 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. Amazon Amazon DCV Server の停止DCVサーバーを停止して再起動します。

トークンの使用

トークンを生成したら、Amazon DCVサーバーに送信できる必要があります。ウェブブラウザクライアントで、URL次のようにトークンを接続に追加します。

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

例:

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

認証サービス要件

カスタム認証サービスは、Amazon DCVサーバーの同じホストで実行することも、別のホストで実行することもできます。認証サービスは、Amazon DCVサーバーからの HTTP(S) POSTリクエストをリッスンする必要があります。

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

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

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

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

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

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

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

DcvSimpleExternalAuthenticator

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

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

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

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

  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 の認証結果が返されます。