使用外部身份验证 - 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. 例如,如果您使用的是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 注册表编辑器并导航到hkey_users/s-1-5-18/Software/gsettings/com/nicesoftware/dcv/钥匙。

  2. 打开auth-token-verifier参数。对于价值数据,按以下格式输入外部认证服务器的 URL 和通信端口:url:port. 例如,如果您使用的是 DcvSimpleExternalAuthenticator,指定以下内容: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"/><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-authenticatorpackage 有关更多信息,请参阅 安装 NICE DCV 服务器

要启动 DcvSimpleExternalAuthenticator 安装后,运行以下命令:

$ dcvsimpleextauth start-server