NSX Advanced Load Balancer 管理员可以使用 Ping Identity 的 PingAccess 代理以控制客户端对虚拟服务的访问。
NSX Advanced Load Balancer 和 PingAccess 代理的交互和工作方式
在上图中,编号的箭头对应于以下编号的步骤。该场景假设客户端尚未对自身进行身份验证,即,没有 Cookie 表明它以前登录到 PingFederate。
客户端访问 SE 上运行的虚拟服务。对于该特定 VS,SE 已配置为向 PingFederate 代理核实以进行身份验证和授权。如果代理确定客户端已进行身份验证,则继续执行步骤 5。
假设在 PingAccess 代理的缓存中没有对该客户端进行身份验证的记录,它指示 NSX Advanced Load Balancer 暂时停止请求。接下来,将会发生以下情况:
PingAccess 代理向 PingAccess 服务器请求指令。
PingAccess 服务器检查其 URL 策略,并确定已请求访问它保护的资源之一。它使用 SE 传回到客户端的代码响应 PingAccess 代理,而不对其进行解释。客户端将代码解释为重定向,以便与 PingFederate 建立会话。
在收到该代码后,客户端向 PingFederate 发送请求。如果 PingFederate 确定应验证客户端,则会创建会话。
然后,将客户端重定向回资源,即,重定向回 NSX Advanced Load Balancer SE。该请求现在包含一个 Cookie,用于将其标识为合法的用户。PingAccess 代理缓存客户端的身份验证信息。
PingAccess 代理识别出客户端已进行身份验证。
在 NSX Advanced Load Balancer 停止请求时,PingAccess 代理向 PingAccess 服务器请求授权指令。
PingAccess 服务器检查其 URL 策略,并确定它是受保护的资源。它检查会话令牌,确定令牌有效,并向代理回复客户端具有授权以访问该资源。
不适用于 NSX Advanced Load Balancer,但如果启用了会话吊销,PingAccess 服务器将检查并更新由 PingFederate 维护的中心会话吊销列表。如果会话有效,则指示代理重新设置身份 HTTP 标头。
SE 将经过身份验证和授权的请求传送到选定的后端服务器。
配置了 PingAccess 代理的虚拟服务的所有请求日志包含 PingAccess 子请求的证据,PingAccess 代理通过这些子请求获取所需的信息。日志条目包含一个“PaaLog”字符串,以便于进行识别。
配置虚拟服务以使用 PingAccess 代理
导航到创建。
,然后单击在新建 PingAccess 代理窗口中,输入代理的名称。
对于导入或粘贴 PingAccess 代理属性字段,可以通过以下两种方法导入 PingAccess 代理属性:
单击导入文件并上载 agent.properties 文件。
将 PingAccess 代理属性文件内容粘贴到文本区域中。
单击保存。
关于 .properties 文件:PingAccess 管理员可以使用 PingAccess UI 将属性文件从 PingAccess 服务器下载到其工作站文件系统中。该属性文件包含 SE PingAccess 代理所需的共享密钥。其文件名的格式为 <agent_name>_agent.properties。通过将该文件放置在当前目录中,管理员可以通过仅包含文件名的路径名(即 AviAgent_agent.properties)引用该文件。
在安装 PingAccess 代理后,无法修改该代理的属性。相反,用户需要删除以前的代理并上载新的代理。
5. 导航到创建。
,然后单击6. 在新建身份验证配置文件窗口中,为新配置文件指定一个名称。选择 PING 类型。从 PingAccess 代理下拉菜单中选择在步骤 2 中创建的代理。单击保存。
7. 使用以下 CLI 定义步骤 8 中所需的 SSO 策略。
[admin:ctrlr-1]: > configure ssopolicy ExampleSSO [admin:ctrlr-1]: ssopolicy> authentication_policy default_auth_profile ExampleAuthProfile [admin:ctrlr-1]: ssopolicy:authentication_policy> save [admin:ctrlr-1]: ssopolicy> save
8. 导航到
,然后启动 PingFederate 将监控的虚拟服务访问的编辑器。将刚定义的 SSO 策略与虚拟服务相关联。