Citrix ADC

OAuth 身份验证

身份验证、授权和审核流量管理功能支持 OAuth 和 OpenID Connect (OIDC) 身份验证。它授权和验证用户使用托管在诸如 Google、Facebook 和 Twitter 等应用程序上的服务。

注意事项

  • Citrix ADC 高级版及更高版本才能使解决方案工作。
  • Citrix ADC 设备必须在版本 12.1 或更高版本上,该设备才能使用 OIDC 作为 OAuth IdP 运行。
  • Citrix ADC 设备上的 OAuth 适用于符合“OpenID 连接 2.0”的所有 SAML IDP。

可以使用 SAML 和 OIDC 将 Citrix ADC 设备配置为作为服务提供商 (SP) 或身份提供商 (IdP) 行为。以前,配置为 IdP 的 Citrix ADC 设备仅支持 SAML 协议。从 Citrix ADC 12.1 版本开始,Citrix ADC 也支持 OIDC。

OIDC 是 OAuth 授权/委托的延伸。Citrix ADC 设备在同一类别的其他身份验证机制中支持 OAuth 和 OIDC 协议。OIDC 是 OAuth 的附加组件,因为它提供了一种从授权服务器获取用户信息的方法,而 OAuth 只获取无法收集用户信息的令牌。

身份验证机制便于 OpenID 令牌的内联验证。可以将 Citrix ADC 设备配置为获取证书并验证令牌上的签名称。

使用 OAuth 和 OIDC 机制的一个主要优势是用户信息不会发送到托管应用程序。因此,大大降低了身份盗窃的风险。

为身份验证、授权和审核配置的 Citrix ADC 设备现在接受使用 HMAC HS256 算法签名的传入令牌。此外,从文件读取 SAML 身份提供程序 (IdP) 的公钥,而不是从 URL 端点学习。

在 Citrix ADC 实现中,身份验证、授权和审核流量管理虚拟服务器访问应用程序。因此,要配置 OAuth,必须配置 OAuth 策略,该策略必须与身份验证、授权和审核流量管理虚拟服务器相关联。

配置 OpenID Connect 协议

现在可以使用 OIDC 协议将 Citrix ADC 设备配置为身份提供商。OIDC 协议增强了 Citrix ADC 设备的身份提供功能。现在,您可以通过单点登录访问企业范围内的托管应用程序。OIDC 不传输用户密码,而是处理具有特定生命周期的令牌,从而提高安全性。OIDC 还旨在与应用程序和服务等非浏览器客户端集成。因此,许多实施广泛采用 OIDC。

拥有 OpenID 连接支持的优势

  • OIDC 消除了维护多个身份验证密码的开销,因为用户在整个组织中具有单一身份。
  • OIDC 为您的密码提供了强大的安全性,因为密码仅与身份提供商共享,而不是与您访问的任何应用程序共享。
  • OIDC 与各种系统具有广泛的互操作性,使托管应用程序更容易接受 OpenID。
  • OIDC 是一种简单的协议,使本机客户端能够轻松地与服务器集成。

使用 GUI 使用 OpenID Connect 协议将 Citrix ADC 设备配置为 IdP

  1. 导航到配置 > 安全 > AAA-应用程序流量 > 策略 > 身份验证 > 高级策略 > OAuth IdP

  2. 单击 配置文件 ,然后单击 添加。

    创建身份验证 OAuth IDP 配置文件屏幕上,设置以下参数的值,然后单击创建

    • 名称 — 身份验证配置文件的名称。
    • 客户端 ID — 标识 SP 的唯一字符串。
    • 客户端秘密 — 标识 SP 的唯一秘密。
    • 重定向 URL -SP 上的端点必须发布代码/令牌。
    • 颁发者名称 — 标识 IdP 的 字符串。
    • 受众 — IdP 发送令牌的目标收件人。这可能由收件人检查。
    • 偏斜时间 — 令牌保持有效的时间。
    • 默认身份验证组 — 为此配置文件添加到会话中的组, 以简化策略评估并帮助自定义策略。
  3. 单击 策略 ,然后单击 添加。

  4. 创建身份验证 OAuth IDP 策略屏幕上,设置以下参数的值,然后单击创建

    • 名称 身份验证策略的名称。
    • 操作 — 之前创建的配置文件的名称。
    • 日志操作 — 请求与此策略匹配时要使用的消息日志操作的名称。不是强制性的提交。
    • 未确定的成果操作 — — 如果策略评价结果不可否认,应采取的操作 (UNDEF)。不是必填字段。
    • 表达式 — 策略用于响应特定请求的默认语法表达式。例如,true。
    • 注释 — 有关策略的任何注释。

将 OAuthIdP 策略和 LDAP 策略绑定到身份验证虚拟服务器

  1. 导航到配置 > 安全 > AAA-应用程序流量 > 策略 > 身份验证 > 高级策略 > 操作 > LDAP

  2. LDAP 操作屏幕上,单击添加

  3. 创建身份验证 LDAP 服务器屏幕上,设置以下参数的值,然后单击创建

    • 名称 — LDAP 操作的名称
    • ServerName/ServerIP — 提供 LDAP 服务器的 FQDN 或 IP
    • 为安全类型、端口、服务器类型、超时选择合适的值
    • 确保选中身份验证
    • 基础 DN — 从中开始 LDAP 搜索的基础。例如,dc = aaa,dc = 本地。
    • 管理员绑定 DN: 绑定到 LDAP 服务器的用户名。例如, admin@aaa.local。
    • 管理员密码/确认密码:绑定 LDAP 的密码
    • 单击测试连接以测试您的设置。
    • 服务器登录名属性: 选择sAMAccountName
    • 其他字段不是必填字段,因此可以根据需要进行配置。
  4. 导航到配置 > 安全性 > AAA 应用程序流量 > 策略 > 身份验证 > 高级策略 > 策略。

  5. 身份验证策略屏幕上,单击添加

  6. 创建身份验证策略页上,设置以下参数的值,然后单击创建”。

    • 名称 — LDAP 身份验证策略的名称。
    • 操作类型 — 选择 LDAP。
    • 操作 — 选择 LDAP 操作。
    • 表达式 — 策略用于响应特定请求的默认语法表达式。例如,true**。

使用 CLI 使用 OpenID Connect 协议将 Citrix ADC 设备配置为 IdP

在命令提示符下,键入以下命令:

  • add authentication OAuthIDPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]
  • add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]

  • add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local"

  • ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName

  • add authentication policy aaa-ldap-adv-pol -rule true -action aaa-ldap-act

  • bind authentication vserver auth_vs -policy <ldap_policy_name> -priority 100 -gotoPriorityExpression NEXT

  • bind authentication vserver auth_vs -policy <OAuthIDPPolicyName> -priority 5 -gotoPriorityExpression END

  • bind vpn global –certkey <>

注意

您可以绑定多个键。发送绑定的证书的公共部分以响应 jwks\_uri query (https://gw/oauth/idp/certs)

OAuth 身份验证