Citrix ADC

OAuth身份验证

身份验证,授权和审核流量管理功能支持OAuth和OpenID连接(OIDC)身份验证。它授权用户使用谷歌、Facebook和Twitter等应用程序上托管的服务并对其进行身份验证。

注意事项

  • 要使解决方案正常运行,需要Citrix ADC高级版及更高版本。
  • Citrix ADC设备必须位于版本12.1或更高版本上,设备才能使用OIDC作为OAuth IdP运行。
  • Citrix ADC设备上的OAuth适用于符合" OpenID Connect 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连接协议

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

获得OpenID连接支持的优势

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

使用GUI通过OpenID连接协议将Citrix ADC设备配置为IdP

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

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

    创建认证OAuth IDP配置文件(创建身份验证OAuth IDP配置文件)页面上,设置以下参数的值,然后单击创建(创建)。

    • 的名字(名称)- 身份验证配置文件的名称。
    • 客户机ID(客户端id)-标识sp的唯一字符串。
    • 客户的秘密(客户端密钥)-标识sp的唯一密钥。
    • 重定向URL(重定向url)-必须向其发布代码/令牌的sp上的端点。
    • 发行人的名字(颁发者名称)-标识IdP的字符串。
    • 观众(受众)- IdP发送的令牌的目标收件人。这可能会由收件人进行检查。
    • 扭曲的时间(倾斜时间)- 令牌仍然有效的时间。
    • 默认认证组(默认身份验证组)- 为了简化策略评估过程并帮助自定义策略而添加到此配置文件的会话中的组。
  3. 单击政策(策略),然后单击添加(添加)。

  4. 创建认证OAuth IDP策略(创建身份验证OAuth IDP策略)页面上,设置以下参数的值,然后单击创建(创建)。

    • 的名字(名称)-身份验证策略的名称。
    • 行动(操作)- 之前创建的配置文件的名称。
    • 日志操作(日志操作)- 请求与此策略匹配时要使用的消息日志操作的名称。非强制性提交。
    • Undefined-Result行动(未定义的结果操作)-策略评估结果未定义(undef)时应执行的操作。非必填字段。
    • 表达式-策略用于响应特定请求的高级策略表达式。例如,没错。
    • 评论(评论)- 对策略的任何评论。

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

  1. 导航到配置(配置)>安全(安全)> AAA -应用流量(AAA -应用程序流量)>高级策略(高级策略)>动作(操作)> LDAP

  2. LDAP行动(ldap操作)屏幕上,单击添加(添加)。

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

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

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

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

    • 的名字(名称)- ldap身份验证策略的名称。
    • 动作类型(操作类型)- 选择LDAP。
    • 行动(操作)-选择ldap操作。
    • 表达式-策略用于响应特定请求的高级策略表达式。例如,真**。

使用CLI通过OpenID连接协议将Citrix ADC设备配置为IdP

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

  • add authentication OAuthIDPProfile [-clientID ][-clientSecret][-redirectURL ][-issuer ][-audience ][-skewTime ] [-defaultAuthenticationGroup ]
  • add authentication OAuthIdPPolicy -rule [-action [-undefAction ][-comment ][-logAction ]

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

  • ldapBindDn -ldapBindDnPassword - ldploginname sAMAccountName

  • 添加认证策略aaa-ldap-adv-pol -rule true -action aaa-ldap-act

  • 绑定认证vserver auth_vs -policy -priority 100 -gotoPriorityExpression NEXT

  • bind authentication vserver auth_vs -policy -priority 5 -gotoPriorityExpression END

  • 绑定VPN全局-certkey <>

注意

可以绑定多个密钥。绑定的证书的公共部分是为了响应Jwks \_uri查询(https://gw/oauth/idp/certs)

OAuth身份验证