使用外部验证 - NICE DCV
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用外部验证

默认情况下,NICE DCV 客户端身份验证工作委派给底层操作系统。使用 Windows NICE DCV 服务器,身份验证工作委派给 WinLogon。使用 Linux NICE DCV 服务器,身份验证工作委派给 Linux PAM。

您可以配置 NICE DCV 使用外部身份验证服务器对客户端进行身份验证。这使您能够使用现有的身份验证系统。利用外部身份验证,NICE DCV 利用您现有的登录机制并将身份验证委托给外部身份验证服务器。

要使用外部身份验证服务器,您必须具有以下准备:

  • 登录机制— 这是用户用来登录的前端机制。它应该能够使用现有的凭据验证系统验证您的用户,并且应该能够生成令牌并将其提供给 NICE DCV 服务器。有关更多信息,请参阅 使用令牌

  • 身份验证服务器— 这是对登录机制生成的令牌进行身份验证的服务器。此服务器应该能够从 NICE DCV 服务器接收 HTTP (S) POST 请求,其中包括令牌,执行必要的身份验证,然后将响应发送回 NICE DCV 服务器。有关实施身份验证服务器的更多信息,请参阅服务要求.

  • 配置 NICE DCV 服务器— 必须将 NICE DCV 服务器配置为使用外部身份验证服务器。有关更多信息,请参阅 配置 NICE DCV 服务器

配置 NICE DCV 服务器

必须将 NICE DCV 服务器配置为使用外部身份验证服务。

Linux NICE DCV server

要在 Linux 上指定外部身份验证服务器

  1. 导航到 /etc/dcv/,并使用您常用的文本编辑器打开 dcv.conf

  2. 找到auth-token-verifier中的参数[security]部分,然后用外部身份验证服务器的 URL 和要通信的端口替换现有值,格式如下:url:port. 例如,如果您使用的是 dcvSimpleExternal 身份验证器,则指定以下内容:http://127.0.0.1:8444.

    如果 auth-token-verifier 部分中没有 [security] 参数,则使用以下格式手动添加此参数:

    [security] auth-token-verifier=url:port
  3. 保存并关闭 文件。

Windows NICE DCV server

在 Windows 上指定外部身份验证服务器

  1. 打开 Windows 注册表编辑器并导航到HKEY_USERS/S-1-5-18/Software/GSettings/com/nictware/dcV/安全/键。

  2. 打开auth-token-verifier参数。适用于Value data中,输入外部身份验证服务器的 URL 和要通信的端口,格式如下:url:port. 例如,如果您使用的是 dcvSimpleExternal 身份验证器,则指定以下内容:http://127.0.0.1:8444.

    注意

    如果该参数不存在,则创建一个新的 String 参数并将其命名。auth-token-verifier.

  3. 关闭 Windows 注册表编辑器。

  4. 停止重新启动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 服务器的 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"/>

dcvSimple外部身份验证器

NICE DCV 附带一个名为的参考外部身份验证服务器,DcvSimpleExternalAuthenticator. DCV SimpleExternal 身份验证器是一个单一的 Python 脚本,您可以用作自行创建自己的自定义身份验证服务器的起点。

dcvSimpleExternalAthenticator 服务器支持 HTTP 和 HTTPS,并且必须在安装 NICE DCV 服务器的同一服务器上运行。默认情况下,dcvSimpleExternal 身份验证器侦听端口上的请求8444. 如果需要,您可以更改端口。要做到这一点,请打开/etc/dcv/simpleextauth.conf使用首选文本编辑器,找到EXTAUTH_PORT参数,并将现有值替换为所需的端口号。

要使用 dcvSimpleExternal 身份验证器,您必须安装nice-dcv-simple-external-authenticator程序包。有关更多信息,请参阅 安装 NICE DCV 服务器

启动 DcvSimpleExternalAuthenticator 安装完成后,请运行以下命令:

$ dcvsimpleextauth start-server