ADC

将 Azure AD 配置为 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 机制

Azure AD 端配置

配置单点登录设置:

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

  2. 在导航窗格的“管理”部分下,单击“企业应用程序”。此时将出现 Azure AD 租户中的应用程序的随机样本。

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

    SAML 应用程序 ADC

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

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

  6. 配置基本的 SAML 选项:

    标识符(实体 ID) -某些应用程序是必需的。唯一标识正在为其配置单点登录的应用程序。Azure AD 将标识符作为 SAML 令牌的受众参数发送给应用程序。预计应用程序将对其进行验证。此值还在应用程序提供的任何 SAML 元数据中显示为实体 ID。

    回复 URL -强制性。指定应用程序期望在哪里接收 SAML 令牌。回复 URL 也称为断言消费者服务 (ACS) URL。以 http(s)://<SP_URL>/cgi/samlauth 格式指定回复 URL。

    登录 URL -当用户打开此 URL 时,服务提供商会重定向到 Azure AD 进行身份验证并登录该用户。

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

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

    SAML 设置

  8. 完成 Azure AD 端配置后,添加有权访问应用程序的用户和用户组。导航到“用户和组”选项卡,然后单击 +添加用户/组

    SAML 设置

NetScaler 端配置

  1. 创建 SAML 操作。

    • 导航到“安全”>“AAA-应用程序流量策略”>“身份验证”>“高级策略”>“操作”>“SAML”。

    • 单击“添加”,输入以下参数的值,然后单击“创建”。

      参数描述:

      粗体参数的值必须取自 Azure 端配置。

      • 名称-服务器的名称

      • 重定向 URL -输入之前在 Azure AD“设置 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 的“用户属性和声明”部分。

      • 签名证书名称 -Azure AD 不需要。选择 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 虚拟服务器链接到身份验证虚拟服务器。有关绑定过程的详细信息,请参阅绑定身份验证策略

注意:

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