将 Microsoft Entra ID 配置为 SAML IdP,将 NetScaler 配置为 SAML SP
SAML 服务提供商 (SAML SP) 是由服务提供商部署的 SAML 实体。当用户尝试访问受保护的应用程序时,SP 将评估客户端请求。如果客户端未经身份验证(没有有效的 NSC_TMAA 或 NSC_TMAS cookie),SP 会将请求重定向到 SAML 身份提供程序 (IdP)。SP 还会验证从 IdP 收到的 SAML 断言。
SAML 身份提供商 (SAML IdP) 是部署在客户网络上的 SAML 实体。IdP 接收来自 SAML SP 的请求,并将用户重定向到登录页面,用户必须在登录页面中输入凭据。IdP 使用用户目录(外部身份验证服务器,例如 LDAP)对这些凭据进行身份验证,然后生成发送到 SP 的 SAML 断言。SP 验证令牌,然后授予用户对请求的受保护应用程序的访问权限。
下图描述了 SAML 身份验证机制。
Microsoft Entra ID 端配置
配置单点登录设置:
-
在 Azure 门户上,单击 Azure Active Directory。
-
在导航窗格的“管理”部分下,单击“企业应用程序”。随机显示 Microsoft Entra ID(以前称为 Azure AD)租户中应用程序的样本。
-
在搜索栏中,输入 NetScaler SAML Connector for Azure AD。
-
在 管 理部分下,选择 单点登录。
-
选择 SAML 以配置单点登录。此时将显示“使用 SAML 设置单点登录-预览”页面。在这里,Azure 充当 SAML IdP。
-
配置基本的 SAML 选项:
标识符(实体 ID) -某些应用程序是必需的。唯一标识正在为其配置单点登录的应用程序。Microsoft Entra ID 将标识符作为 SAML 令牌的受众参数发送给应用程序。预计应用程序将对其进行验证。此值还在应用程序提供的任何 SAML 元数据中显示为实体 ID。
回复 URL -强制性。指定应用程序期望在哪里接收 SAML 令牌。回复 URL 也称为断言消费者服务 (ACS) URL。以
http(s)://<SP_URL>/cgi/samlauth
格式指定回复 URL。登录 URL - 当用户打开此 URL 时,服务提供商会重定向到 Microsoft Entra ID 以对用户进行身份验证和登录。
中继状态 -指定在身份验证完成后将用户重定向到的应用程序。
-
从 SAML 证书部分下载证书 (Base64)。在将 NetScaler 配置为 SAML SP 时,该证书被用作 samlidPCertName。
-
Microsoft Entra ID 端配置完成后,添加允许访问该应用程序的用户和用户组。导航到“用户和组”选项卡,然后单击 +添加用户/组。
NetScaler 端配置
-
创建 SAML 操作。
-
导航到“安全”>“AAA-应用程序流量策略”>“身份验证”>“高级策略”>“操作”>“SAML”。
-
单击“添加”,输入以下参数的值,然后单击“创建”。
参数描述:
粗体参数的值必须取自 Azure 端配置。
-
名称-服务器的名称
-
重定向 URL - 输入之前在 Microsoft Entra ID 的“设置 NetScaler”部分使用的登录 URL。
https://login.microsoftonline.com/3e6d1786-4e0c-4c70-86d2-ae7811f97f79/saml2
-
单点注销 URL-
https://login.microsoftonline.com/3e6d1786-4e0c-4c70-86d2-ae7811f97f79/saml2
-
SAML 绑定 - 一种用于在 SP 和 IdP 之间传输 SAML 请求者和响应者消息的机制。当 NetScaler 充当 SP 时,它支持发布、重定向和构件绑定。默认的绑定方法是 Post。
-
注销绑定-指定 SAML 注销消息的传输机制。默认的绑定机制是 Post。
-
IDP 证书名称 - 存在于 SAML 证书部分的 IdPCert 证书 (Base64)。
add ssl certkey <IDP-CERT-NAME> -cert <Name of the IdP certificate downloaded above> <!--NeedCopy-->
-
用户字段 - userprincipalName。摘自 Azure IdP 的“用户属性和声明”部分。
-
签名证书名称 - Microsoft Entra ID 不需要。选择 NetScaler 用于对 IdP 的身份验证请求签名的 SAML SP 证书(带私钥)。必须将相同的证书(不带私钥)导入到 IdP,以便 IdP 可以验证身份验证请求签名。大多数 IdP 并不需要此字段。
-
颁发者名称 - 实体 ID 或标识符。在这种情况下为
https://gateway.nssvctesting.net
。在负载平衡部署方案中,必须使用负载平衡虚拟服务器的 FQDN。 -
拒绝未签名的断言 - 如果需要对来自 IdP 的断言进行签名,则可以指定该选项。默认选项为开。
-
受众 - IdP 发送的断言适用的受众。这通常是表示服务提供商的实体名称或 URL。
-
签名算法 - 用于签名/验证 SAML 事务的算法。默认值为 RSA-SHA256。
-
摘要方法 - 用于计算/验证 SAML 事务摘要的算法。默认值为 SHA256。
-
默认身份验证组-除了提取的组外,身份验证成功时选择的默认组。
-
组名称字段 - 包含用户组的断言中标记的名称。
-
偏移时间(分钟)- 此选项指定 NetScaler 服务提供商在传入断言时允许的时钟偏差(以分钟为单位)。例如,如果您在 16:00 将偏移时间设置为 10 分钟,则 SAML 断言的有效期为 15:50 到 16:10,总共为 20 分钟。默认偏移时间为 5 分钟。
-
两个因素- OFF
-
请求的验证上下文-确切
-
身份验证类型-无
-
发送指纹-OFF
-
强制用户名-开
-
强制身份验证-OFF
-
存储 SAML 响应-关
-
-
-
为 SAML 操作创建相应的 SAML 策略,并将该策略绑定到身份验证虚拟服务器。
-
导航到“安全”>“AAA 应用程序流量”>“策略”>“身份验证”>“高级策略”>“策略”,然后单击“添加”。
-
在 创建身份验证 SAML 策略 页面上,提供以下详细信息:
- 名称 - 指定 SAML 策略的名称。
- 操作类型 - 选择 SAML 作为身份验证操作类型。
- 操作 - 选择要绑定 SAML 策略的 SAML 服务器配置文件。
- 表达式 - 显示规则或表达式的名称,SAML 策略使用该规则或表达式来确定用户是否必须通过 SAML 服务器进行身份验证。在文本框中,设置值“rule = true”以使 SAML 策略生效并运行相应的 SAML 操作。
-
-
将 SAML 策略绑定到 VPN 虚拟服务器,并通过身份验证配置文件将 VPN 虚拟服务器链接到身份验证虚拟服务器。有关绑定过程的详细信息,请参阅绑定身份验证策略。
注意:
- Microsoft Entra ID 不需要 SAML 请求中的“主题 ID”字段。
- 要使 NetScaler 不发送“主题 ID”字段,请在 NetScaler CLI 上键入以下命令。
nsapimgr_wr.sh -ys call="ns_saml_dont_send_subject"
此命令仅适用于 nFactor 身份验证工作流程。