2.5.7. 配置通用 OIDC 身份验证
OpenID Connect (OIDC)使用 OAuth 2.0 框架。它可让第三方应用程序验证身份并获取基本最终用户信息。OIDC 和 SAML 的主要区别在于 SAML 具有服务供应商(SP)到-IdP 信任关系,而 OIDC 与用于获取安全令牌的频道(HTTPS)建立信任。要获得使用 Ansible Automation Platform 设置 OIDC 所需的凭证,请参阅您选择的 IdP 中的支持 OIDC 支持的文档。
流程
-
在导航面板中,选择
。 - 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 Generic OIDC。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
输入以下信息:
- OIDC Provider URL: 您的 OIDC 供应商的 URL。
- OIDC Key: 您的第三方 IdP 中的客户端 ID。
- OIDC Secret :来自 IdP 的客户端 secret。
- 可选:从 Access Token Method 列表中选择请求访问令牌时要使用的 HTTP 方法。默认方法是 POST。
(可选)使用为说明和所需格式提供的工具提示输入以下字段的信息:
- 访问令牌方法 - 默认方法是 POST。
- 访问令牌 URL
- 访问令牌方法
- 授权 URL
- 回调 URL - OIDC Callback URL 字段使用您配置的每个 OIDC 供应商将服务注册为服务供应商(SP)。将此字段留空。保存这个验证方法后,会自动生成它。将您的 IdP 配置为允许重定向到此 URL,作为身份验证流程的一部分。
- ID 密钥
- ID Token Issuer
- JWKS URI
- OIDC 公钥
- 撤销令牌方法 - 默认方法是 GET。
- 撤销令牌 URL
- 响应类型
- 令牌端点身份验证方法
- userinfo URL
- 用户名键
- 使用 Verify OIDC Provider Certificate 来启用或禁用 OIDC 供应商 SSL 证书验证。
- 使用 Redirect State 来启用或禁用重定向 URI 中的 state 参数。建议启用此设置来防止跨站点请求 Forgery (CSRF)攻击。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
2.5.7.1. 对通用 OIDC 单点登录身份验证失败进行故障排除 复制链接链接已复制到粘贴板!
如果没有明确定义 OIDC JWT Algorithm 设置,身份验证会失败。身份验证代码需要一个可接受的算法列表,它不会从 OpenID Connect (OIDC)配置端点自动检索。
2.5.7.1.1. 手动配置 JWT_Algorithms 复制链接链接已复制到粘贴板!
要解决身份验证失败,请在平台网关配置中手动提供支持的算法列表。
流程
-
在导航面板中,选择
。 - 从列表中选择您的 OIDC authenticator。
- 点 ,找到 OIDC JWT Algorithm (s) 字段。
以 YAML 列表或 JSON 数组形式输入支持的算法列表。这些算法通常包括在 IdP 的 OpenID Connect (OIDC)发现端点中。
示例
[ "PS384", "ES384", "RS384", "HS256", "HS512", "ES256", "RS256", "HS384", "ES512", "PS256", "PS512", "RS512" ]- 保存您的更改。系统使用这些指定的算法进行令牌验证,从而解决了与它们没有相关的任何身份验证失败。
2.5.7.1.2. 为企业级身份验证启用调试 复制链接链接已复制到粘贴板!
要进一步诊断身份验证问题,请在平台网关中启用调试日志。
流程
-
更改平台网关的
settings.py文件中的日志记录配置。 将
ansible_baselogger 的日志记录级别设置为DEBUG:LOGGING['loggers']['ansible_base']['level'] = 'DEBUG'在此更改后,日志中会显示详细的
AuthTokenError消息,提供有关故障原因的具体信息。
2.5.7.1.3. Generic OIDC 范围不匹配故障排除 复制链接链接已复制到粘贴板!
当身份提供程序(IdP)不支持系统自动附加的默认范围时,身份验证会失败。
要防止系统附加此默认范围,您必须在验证器配置中添加一个设置。
流程
-
在导航面板中,选择
。 - 从列表中选择您的 OIDC authenticator。
- 单击 。
在 Additional Authenticator Fields 部分中,添加以下属性和值。此输入框支持 YAML 或 JSON。如果存在其他字段,请确保在新行中添加此键值对:
IGNORE_DEFAULT_SCOPE: True- 保存您的更改。验证器现在只使用您明确定义的范围,从而解决了与不支持的范围相关的任何身份验证失败。