本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用外部身份验证
默认情况下,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 服务器 以使用外部身份验证服务。
使用令牌
在生成令牌后,您必须能够将其发送到 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