2.5.7. 配置通用 OIDC 身份验证


OpenID Connect (OIDC)使用 OAuth 2.0 框架。它可让第三方应用程序验证身份并获取基本最终用户信息。OIDC 和 SAML 的主要区别在于 SAML 具有服务供应商(SP)到-IdP 信任关系,而 OIDC 与用于获取安全令牌的频道(HTTPS)建立信任。要获得使用 Ansible Automation Platform 设置 OIDC 所需的凭证,请参阅您选择的 IdP 中的支持 OIDC 支持的文档。

流程

  1. 在导航面板中,选择 Access Management Authentication Methods
  2. Create authentication
  3. 输入此身份验证配置的 Name
  4. Authentication type 列表中选择 Generic OIDCAuthentication details 部分自动更新,以显示与所选验证类型相关的字段。
  1. Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤
  2. 输入以下信息:

    • OIDC Provider URL: 您的 OIDC 供应商的 URL。
    • OIDC Key: 您的第三方 IdP 中的客户端 ID。
    • OIDC Secret :来自 IdP 的客户端 secret。
  3. 可选:从 Access Token Method 列表中选择请求访问令牌时要使用的 HTTP 方法。默认方法是 POST
  4. (可选)使用为说明和所需格式提供的工具提示输入以下字段的信息:

    • 访问令牌方法 - 默认方法是 POST
    • 访问令牌 URL
    • 访问令牌方法
    • 授权 URL
    • 回调 URL - OIDC Callback URL 字段使用您配置的每个 OIDC 供应商将服务注册为服务供应商(SP)。将此字段留空。保存这个验证方法后,会自动生成它。将您的 IdP 配置为允许重定向到此 URL,作为身份验证流程的一部分。
    • ID 密钥
    • ID Token Issuer
    • JWKS URI
    • OIDC 公钥
    • 撤销令牌方法 - 默认方法是 GET
    • 撤销令牌 URL
    • 响应类型
    • 令牌端点身份验证方法
    • userinfo URL
    • 用户名键
  5. 使用 Verify OIDC Provider Certificate 来启用或禁用 OIDC 供应商 SSL 证书验证。
  6. 使用 Redirect State 来启用或禁用重定向 URI 中的 state 参数。建议启用此设置来防止跨站点请求 Forgery (CSRF)攻击。
  7. 可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。

    注意

    此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。

  8. 要在成功登录时自动创建机构、用户和团队,请选择 Create objects
  9. 要在创建时启用此验证方法,请选择 Enabled
  10. 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users
  11. 单击 Create Authentication Method

如果没有明确定义 OIDC JWT Algorithm 设置,身份验证会失败。身份验证代码需要一个可接受的算法列表,它不会从 OpenID Connect (OIDC)配置端点自动检索。

2.5.7.1.1. 手动配置 JWT_Algorithms

要解决身份验证失败,请在平台网关配置中手动提供支持的算法列表。

流程

  1. 在导航面板中,选择 Access Management Authentication Methods
  2. 从列表中选择您的 OIDC authenticator。
  3. Edit authentication,找到 OIDC JWT Algorithm (s) 字段。
  4. 以 YAML 列表或 JSON 数组形式输入支持的算法列表。这些算法通常包括在 IdP 的 OpenID Connect (OIDC)发现端点中。

    示例

    [
        "PS384",
        "ES384",
        "RS384",
        "HS256",
        "HS512",
        "ES256",
        "RS256",
        "HS384",
        "ES512",
        "PS256",
        "PS512",
        "RS512"
    ]
  5. 保存您的更改。系统使用这些指定的算法进行令牌验证,从而解决了与它们没有相关的任何身份验证失败。
2.5.7.1.2. 为企业级身份验证启用调试

要进一步诊断身份验证问题,请在平台网关中启用调试日志。

流程

  1. 更改平台网关的 settings.py 文件中的日志记录配置。
  2. ansible_base logger 的日志记录级别设置为 DEBUG

    LOGGING['loggers']['ansible_base']['level'] = 'DEBUG'

    在此更改后,日志中会显示详细的 AuthTokenError 消息,提供有关故障原因的具体信息。

2.5.7.1.3. Generic OIDC 范围不匹配故障排除

当身份提供程序(IdP)不支持系统自动附加的默认范围时,身份验证会失败。

要防止系统附加此默认范围,您必须在验证器配置中添加一个设置。

流程

  1. 在导航面板中,选择 Access Management Authentication Methods
  2. 从列表中选择您的 OIDC authenticator。
  3. 单击 Edit authentication
  4. Additional Authenticator Fields 部分中,添加以下属性和值。此输入框支持 YAML 或 JSON。如果存在其他字段,请确保在新行中添加此键值对:

    IGNORE_DEFAULT_SCOPE: True
  5. 保存您的更改。验证器现在只使用您明确定义的范围,从而解决了与不支持的范围相关的任何身份验证失败。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部