使用外部驗證 - NICE DCV

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用外部驗證

根據預設,NICE DCV 用戶端驗證會委派給基礎作業系統。使用視窗 NICE DCV 伺服器時,驗證會委派給 WinLogon。使用 Linux NICE DCV DCV 伺服器時,驗證會委派給 Linux PAM。

您可以將 NICE DCV 設定為使用外部驗證伺服器來驗證用戶端。這可讓您使用現有的驗證系統。透過外部驗證,NICE DCV 會利用您現有的登入機制,並將驗證委派給外部驗證伺服器。

外部驗證會驗證具有 DCV 伺服器存取權的使用者,以便使用工作階段建立。除非您設置自己的外部身份驗證器,否則它不會像系身份驗證那樣對基礎操作系統對您的用戶進行身份驗證。

DCV 工作階段管理員隨附內建的外部驗證器。若要使用此功能,您的 DCV 伺服器必須使用工作階段管理員位址來設定auth-token-verifier參數。

若要使用外部驗證伺服器,您必須具備下列項目:

  • 登入機制 — 這是您的使用者用來登入的前端機制。它應該能夠使用現有的憑據驗證系統來驗證您的用戶,並且應該能夠生成令牌並將其提供給 NICE DCV 服務器。如需詳細資訊,請參閱 使用令牌

  • 驗證伺服器 — 這是驗證登入機制產生之權杖的伺服器。該服務器應該能夠從包含令牌的 NICE DCV 服務器接收 HTTP(S)POST 請求,執行必要的身份驗證,然後將響應發送回 NICE DCV 服務器。如需實作驗證伺服器的詳細資訊,請參閱驗證服務需求

  • NICE DCV 伺服器組態 — NICE DCV 伺服器必須設定為使用外部驗證伺服器。如需詳細資訊,請參閱 NICE DCV DCV 服務器配置

NICE DCV 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_用戶 /S-1-5-18 軟件/G 設置/通信/尼克斯軟件/DCV/ 密鑰

  3. 安全性auth-token-verifier參數中找出參數

  4. 執行以下任意一項:

    • 在 [數值資料] 中,輸入外部驗證伺服器的 URL 以及要通訊的連接埠,格式如下:url:port

      例如,如果您使用的是 DcvSimpleExternalAuthenticator,請指定下列項目:http://127.0.0.1:8444

    • 如果安全性區段中沒有auth-token-verifier參數,請將其新增至 PowerShell。請參閱修改組態參數

  5. 關閉 Windows 登錄編輯程式。

  6. 停止重新啟動 NICE DCV 伺服器。

使用令牌

生成令牌後,您必須能夠將其發送到 NICE DCV 服務器。使用 Web 瀏覽器客戶端,將令牌附加到連接 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 DCV 伺服器的 HTTP (S) POST 要求。

下面顯示了 NICE DCV 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 DCV 服務器

使用簡易外部驗證器

  1. 導覽至您的驗證目錄。

    sudo mkdir -p /var/run/dcvsimpleextauth

  2. 生成您的身份驗證令牌。

    在此範例中123456,範例驗證器 Token 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