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

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

使用外部身份验证

默认情况下,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 服务器

在 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 服务器

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

  1. 打开 Windows 注册表编辑器并导航到 HKEY_USERS/S-1-5-18/Software/GSettings/com/nicesoftware/dcv/security/ 注册表项。

  2. 打开 auth-token-verifier 参数。对于 Value data (值数据),采用以下格式输入外部身份验证服务器的 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"/>

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 服务器

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

$ dcvsimpleextauth start-server