ADC

将 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 身份验证机制。

SAML 机制

Microsoft Entra ID 端配置

配置单点登录设置:

  1. 在 Azure 门户上,单击 Azure Active Directory

  2. 在导航窗格的“管理”部分下,单击“企业应用程序”。随机显示 Microsoft Entra ID(以前称为 Azure AD)租户中应用程序的样本。

  3. 在搜索栏中,输入 NetScaler SAML Connector for Azure AD

    SAML 应用程序 ADC

  4. 理部分下,选择 单点登录

  5. 选择 SAML 以配置单点登录。此时将显示“使用 SAML 设置单点登录-预览”页面。在这里,Azure 充当 SAML IdP。

  6. 配置基本的 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 以对用户进行身份验证和登录。

    中继状态 -指定在身份验证完成后将用户重定向到的应用程序。

  7. SAML 证书部分下载证书 (Base64)。在将 NetScaler 配置为 SAML SP 时,该证书被用作 samlidPCertName。

    SAML 设置

  8. Microsoft Entra ID 端配置完成后,添加允许访问该应用程序的用户和用户组。导航到“用户和组”选项卡,然后单击 +添加用户/组

    SAML 设置

NetScaler 端配置

  1. 创建 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 响应-关

  2. 为 SAML 操作创建相应的 SAML 策略,并将该策略绑定到身份验证虚拟服务器。

    • 导航到“安全”>“AAA 应用程序流量”>“策略”>“身份验证”>“高级策略”>“策略”,然后单击“添加”。

    • 创建身份验证 SAML 策略 页面上,提供以下详细信息:

      • 名称 - 指定 SAML 策略的名称。
      • 操作类型 - 选择 SAML 作为身份验证操作类型。
      • 操作 - 选择要绑定 SAML 策略的 SAML 服务器配置文件。
      • 表达式 - 显示规则或表达式的名称,SAML 策略使用该规则或表达式来确定用户是否必须通过 SAML 服务器进行身份验证。在文本框中,设置值“rule = true”以使 SAML 策略生效并运行相应的 SAML 操作。
  3. 将 SAML 策略绑定到 VPN 虚拟服务器,并通过身份验证配置文件将 VPN 虚拟服务器链接到身份验证虚拟服务器。有关绑定过程的详细信息,请参阅绑定身份验证策略

注意:

  • Microsoft Entra ID 不需要 SAML 请求中的“主题 ID”字段。
  • 要使 NetScaler 不发送“主题 ID”字段,请在 NetScaler CLI 上键入以下命令。 nsapimgr_wr.sh -ys call="ns_saml_dont_send_subject" 此命令仅适用于 nFactor 身份验证工作流程。
将 Microsoft Entra ID 配置为 SAML IdP,将 NetScaler 配置为 SAML SP