OAuth 身份验证

身份验证、授权和审核流量管理功能现在支持 OAuth 和 OpenID-Connect 机制,用于对托管在 Google、Facebook 和 Twitter 等应用程序上的应用程序进行身份验证和授权。

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

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

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

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

注意

Citrix ADC 设备上的 OAuth 适用于符合“OpenID 连接 2.0”的所有 SAML IdP。

要使用配置实用程序配置 OAuth,请执行以下操作:

  1. 配置 OAuth 操作和策略。

    导航到“安全”>“AAA-应用程序流量”>“策略”>“身份验证”>“高级策略”>“策略”,创建以 OAuth 作为操作类型的策略,并将所需的 OAuth 操作与策略关联。

  2. 将 OAuth 策略与身份验证虚拟服务器关联。

    导航到“安全”>“AAA-应用程序流量”>“虚拟服务器”,并将 OAuth 策略与身份验证虚拟服务器关联。

注意

可以在 OAuth 响应中提取属性(1 到 16)。目前不评估这些属性。它们被添加以供将来参考。

要使用命令行界面配置 OAuth,请执行以下操作:

  1. 定义 OAuth 操作。

    add authentication OAuthAction <name> -authorizationEndpoint <URL> -tokenEndpoint <URL> [-idtokenDecryptEndpoint <URL>] -clientID <string> -clientSecret <string> [-defaultAuthenticationGroup <string>][-tenantID <string>][-GraphEndpoint <string>][-refreshInterval <positive_integer>] [-CertEndpoint <string>][-audience <string>][-userNameField <string>][-skewTime <mins>][-issuer <string>][-Attribute1 <string>][-Attribute2 <string>][-Attribute3 <string>]...

  2. 将操作与高级身份验证策略相关联。

    add authentication Policy** <name> -rule <expression> -action <string>

    示例

    add authentication oauthAction a -authorizationEndpoint https://example.com/ -tokenEndpoint https://example.com/ -clientiD sadf -clientsecret df
    

有关验证 OAuthaction 参数的更多信息,请参阅身份验证操作

注意

当指定了 CertendPoint 时,Citrix ADC 设备轮询该端点以配置的频率来了解密钥。要将 Citrix ADC 配置为从该文件读取本地文件并解析密钥,引入了一个新的配置选项,如下所示。

set authentication OAuthAction <> -**CertFilePath** <path to local file with jwks>

OAuth 身份验证的名称-值属性支持

您现在可以使用唯一名称和值配置 OAuth 身份验证属性。名称在 OAuth 操作参数中配置为“属性”,并通过查询名称获取值。提取的属性存储在身份验证、授权和审核会话中。管理员可以根据指定属性名称的选择方法使用 http.req.user.attribute("attribute name")http.req.user.attribute(1) 查询这些属性。

通过指定属性名称,管理员可以轻松搜索与该属性名称关联的属性值。此外,管理员不再需要单独记住“属性 1 到属性 16”。

重要

在 OAuth 命令中,您最多可以配置 64 个以逗号分隔的属性,总大小小于 1024 字节。

注意

如果“属性 1 到属性 16”的总值大小和“属性”中指定的属性值不超过 10 KB,则可以避免会话失败。

使用 CLI 配置名称-值属性

在命令提示窗口中,键入:

  • add authentication OAuthAction <name> [-Attributes <string>]
  • set authentication OAuthAction <name> [-Attributes <string>]

示例:

  • add authentication OAuthAction a1 –attributes "email,company" –attribute1 email
  • set authentication OAuthAction oAuthAct1 -attributes "mail,sn,userprincipalName"