访问管理和身份验证
在 Ansible Automation Platform 中配置基于角色的访问控制、验证器和验证器映射
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
如果您对本文档有任何改进建议,或发现错误,请通过 https://access.redhat.com 联系技术支持来创建一个请求。
第 1 章 访问管理和身份验证概述 复制链接链接已复制到粘贴板!
Ansible Automation Platform 提供了平台界面,您可以在其中设置集中身份验证、配置访问管理,并从单个位置配置全局和系统级别设置。
第一次登录到 Ansible Automation Platform 时,您必须输入您的订阅信息来激活平台。如需有关许可证和订阅的更多信息,请参阅管理 Ansible Automation Platform 许可、更新和支持。
系统管理员可以通过以下任务配置访问权限、权限和系统设置:
- 在 Ansible Automation Platform 中配置身份验证,您可以在其中选择多个可用的身份验证方法为用户设置简化的登录,并定义权限,并使用验证器映射将它们分配给用户。
- 使用 基于令牌的身份验证配置对外部应用程序的访问,您可以在其中通过集成的 OAuth 2 令牌支持通过平台配置第三方工具和服务身份验证。
- 使用基于角色的访问控制来管理访问权限,您可以在其中根据用户在平台机构中的角色配置用户访问。
- 配置 Ansible Automation Platform,您可以在其中为平台和服务配置全局和系统级设置。
第 2 章 在 Ansible Automation Platform 中配置身份验证 复制链接链接已复制到粘贴板!
使用 Ansible Automation Platform 中的身份验证设置,您可以通过几种身份验证方法设置简化的登录,如 LDAP 和 SAML。根据您选择的身份验证方法,您需要输入不同的信息来完成配置。务必包含配置需要的所有信息。
2.1. 先决条件 复制链接链接已复制到粘贴板!
- 运行 Ansible Automation Platform 2.5 安装
- 您的身份验证源的运行实例
- 对 Ansible Automation Platform 的管理员权限
- 将 Ansible Automation Platform 2.5 连接到您的源所需的所有连接信息(详情请参阅单独的验证类型)。
2.2. 可插拔身份验证 复制链接链接已复制到粘贴板!
身份验证是验证用户对 Ansible Automation Platform 的身份(即,确定用户是谁是谁)的过程。您可以通过多种方式完成此操作,但通常与 相关联。
用户名和密码
当您从 Ansible Automation Platform 注销时,只有您的与平台的会话结束。您的与外部单点登录(SSO)提供程序的会话保持活动状态。要切换到具有相同提供程序的其他帐户,您必须直接从 SSO 提供程序的网站注销。这样可确保您可以使用新帐户成功登录。
Ansible Automation Platform 2.5 使用带有配置向导的可插拔身份验证系统,为配置不同类型的验证器(如 LDAP 和 SAML)提供了常见的简化方法。通过可插拔系统,您可以配置同一类型的许多验证器。
在可插拔系统中,我们有几个概念:
- 身份验证器插件
- 插件允许 Ansible Automation Platform 连接到源系统,如 LDAP 或 SAML。Ansible Automation Platform 包括各种验证器(authenticator)插件。身份验证器插件与 Ansible 集合类似,其中所有必需的代码都位于软件包中,并在需要时单独进行版本控制。
- 身份验证器
- 验证器(authenticator)是验证器插件的实例化,允许指定源中的用户登录。例如,LDAP authenticator 插件定义所需的 LDAP 服务器设置。当您从 LDAP 身份验证插件实例化验证器时,您必须提供验证器所需的 LDAP 服务器 URL。
- authenticator Map
- 验证器映射应用到验证器,并告知 Ansible Automation Platform 授予用户登录到系统的权限。
2.2.1. 在 Ansible Automation Platform 2.5 中使用多个验证器的用户创建 复制链接链接已复制到粘贴板!
在 Ansible Automation Platform 2.5 中,用户帐户管理对于每个配置的验证器都是唯一的。当用户通过多个外部源(如 LDAP 和 SAML)进行身份验证时,平台会为每个验证器创建单独的用户记录。
这个行为会产生以下结果:
- 不同的记录:每个外部验证器都会创建自己的用户记录。
- 唯一名称:系统为每个用户条目需要唯一的用户名。
- 用户名冲突:如果用户的登录会导致用户名冲突(名称已存在于不同的验证器中),系统会将哈希或其他标识字符附加到后续用户帐户的用户名中,以保持唯一性。
然后, → 列表显示同一个人的多个条目。显示原始用户名,以及显示附加的用户名的后续条目。
2.3. 创建验证方法 复制链接链接已复制到粘贴板!
创建验证器涉及以下步骤:
2.3.1. 选择验证类型 复制链接链接已复制到粘贴板!
在 Authentication Methods 页面中,您可以选择您要配置的验证器插件类型。
步骤
- 在导航面板中,选择 → 。
- 点 。
输入 验证器 的唯一名称。名称是必需的,在所有验证器间都必须是唯一的,且不得超过 512 个字符。这是为验证器生成的唯一标识符。
注意更改名称不会更新验证器的唯一标识符。例如,如果您使用名称
My Authenticator创建验证器,稍后将其改为My LDAP Authenticator,您将无法使用名称My Authenticator创建另一个验证器,因为唯一标识符仍在使用。- 从 Authentication type 列表中选择 authenticator 类型。有关可用身份验证插件的完整列表,请参阅配置验证类型。
Authentication details 部分自动更新,以显示与所选验证类型相关的字段。如需所需详情,请参阅配置验证类型中的相应部分。
对于所有验证类型,您可以输入 Name, Additional Authenticator Fields and Create Objects。
- 启用或禁用 Enabled,以指定是否应启用或禁用验证器。如果启用,用户可以从验证器登录。如果禁用,则不允许用户从验证器登录。
启用或禁用 Create Object,以指定 验证器是否应该在用户登录时在系统中创建团队和机构。
- Enabled
- 创建验证器映射中定义的团队和机构,并添加了用户。
- Disabled
- 在验证器映射中定义的机构和团队不会被在系统中自动创建。但是,如果它们已存在(例如由超级用户创建),触发映射的用户将被授予其访问权限。
启用或禁用 删除用户。如果启用,则在从此源进行身份验证时,之前授予用户的任何访问权限都会被删除。如果禁用,则仅根据验证器的映射器映射的结果,为用户添加或删除权限。
例如,假设用户已在系统中被授予了
is_superuser权限。并且,该用户将登录到验证器,其映射不会按照用户是否为超级用户来制定建议。如果启用了 Remove Users,则is_superuser权限将从用户中删除,验证器映射不会像它应该是否存在一样,在登录用户时没有is_superuser权限。如果禁用 Remove Users,则不会 从用户中删除
is_superuser权限。登录用户后,验证器映射不会像它一样使用is_superuser权限。- 单击 ,再继续 定义身份验证映射规则并触发器。
2.3.2. 定义身份验证映射规则和触发器 复制链接链接已复制到粘贴板!
身份验证映射类型可用于任何类型的验证器。每个映射都有一个触发器,用于定义映射应评估为 true 的时间。
步骤
- 在导航面板中,选择 → 。
- 在列表视图中,选择 Name 列中显示的验证器名称。
- 在验证器的 Details 页面中选择 Mapping 选项卡。
- 点 。
从 Authentication 映射列表中选择映射类型。有关不同 映射类型的详情,请参阅 Authenticator 映射类型。选择包括:
- 输入唯一规则 Name 来标识该规则。
从列表中选择 Trigger。如需了解更多详细信息,请参阅 Authenticator 映射触发器。选择包括:
- Always
- Never
- 组
- 属性
- 点 。
- 重复此步骤,为验证器创建额外的映射规则和触发器。
继续 调整映射顺序,以便 选择性地对验证器的映射进行重新排序。
注意只有定义了多个验证器映射时,映射顺序设置才可用。
2.3.3. 调整映射顺序 复制链接链接已复制到粘贴板!
如果您定义了一个或多个验证器映射,您可以管理映射的顺序。验证器映射在以最低顺序登录到最高时按顺序运行。如果一个验证器映射决定用户应该是团队的成员,但后续映射决定用户不应是同一团队的成员,则第二个映射将优先于第一个映射的结果。验证器映射以未定义顺序执行。
例如,如果第一个验证器映射 是_superuser,并且触发器被设为 never,则登录到系统的任何用户都不会被授予 is_superuser 标志。
此外,如果第二个映射是 is_superuser,并且触发器基于具有特定组的用户,则初始登录时用户登录都将拒绝 is_superuser 权限。但是,具有指定组的任何用户都会被第二个规则授予 is_superuser 权限。
规则的顺序比您要首先处理机构、团队或角色之外。它们也可用于优化访问和仔细考虑,以避免登录问题。
例如:
- 身份验证器映射 A 拒绝所有用户访问系统
-
身份验证器映射 B 允许用户
john访问系统
当映射顺序设置为 A 时,B;第一个映射拒绝所有用户的访问,包括 john。然后,第二个映射允许 john 访问系统,结果是 john 被授予访问权限,并可登录到平台。
但是,当映射顺序改为 B 时,第一个映射允许 john 访问系统。然后,第二个映射拒绝对系统的所有用户的访问(包括 john),结果是 john 被拒绝访问,且无法登录到平台。
步骤
- 在导航面板中,选择 → 。
- 在列表视图中,选择 Name 列中显示的验证器名称。
- 在验证器的 Details 页面中选择 Mapping 选项卡。
- 点 。
通过使用拖放列表中的映射,使用拖放列表来调整映射顺序。
注意映射优先级由列出映射的顺序决定。
- 在您的验证器映射以正确顺序后,单击 。
2.4. 启用和禁用本地验证器 复制链接链接已复制到粘贴板!
作为平台管理员,您可以启用或禁用验证器。但是,禁用本地验证器可能会产生重大影响,且只在特定情况下才进行。在禁用本地验证器前,您必须考虑以下几点:
- 本地帐户无法访问
-
禁用本地验证器可防止所有本地帐户,包括默认的
admin帐户登录。 - 潜在的无法访问
- 在没有其他配置的验证器的情况下禁用本地验证器可能会导致 Ansible Automation Platform 环境完全无法访问。
- 依赖于企业身份验证供应商
- 如果本地验证器被禁用,且配置了企业身份验证供应商的问题,则平台将无法访问,直到企业身份验证供应商问题解决为止。
先决条件
- 您至少配置了其他验证器的方法。
- 您至少有一个管理员可以使用备用验证器进行身份验证的管理员帐户。
在没有其他身份验证的情况下禁用本地验证器可能会导致环境被锁定。
步骤
- 在导航面板中,选择 → 。
- 确保至少配置并启用另一个验证器类型。
- 选择您的 Local Authenticator。
- 将 Enabled 开关切换到 off 位置,以禁用本地验证器。
故障排除
如果本地验证器在没有配置其他验证方法的情况下被禁用,或者您配置的企业身份验证供应商出现问题,使 Ansible Automation Platform 无法访问,您可以在命令行中重新启用本地验证器,如下所示:
运行以下命令,列出可用的验证器并检索本地验证器的 ID:
aap-gateway-api authenticators --list
aap-gateway-api authenticators --listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用其 ID 启用本地验证器:
aap-gateway-manage authenticators --enable :id
aap-gateway-manage authenticators --enable :idCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
:id是从上一步中获取的本地验证器的 ID。
2.5. 配置身份验证类型 复制链接链接已复制到粘贴板!
Ansible Automation Platform 提供多个验证器插件,您可以配置它们来简化机构的登录体验。这些是提供的验证器插件:
Controller admin 验证方法用于特定的安装和部署场景,只有在明确指示时才应使用。此方法无法为 Ansible Automation Platform 的一般操作提供有用的功能。
2.5.1. 配置本地身份验证 复制链接链接已复制到粘贴板!
作为平台管理员,您可以配置本地系统身份验证。使用本地身份验证时,会根据本地系统帐户检查用户及其密码。
Ansible Automation Platform 安装过程会自动创建本地验证器,并在安装前使用清单文件中的指定 admin 凭证进行配置。成功安装后,您可以使用这些凭证登录到 Ansible Automation Platform。
步骤
- 在导航面板中,选择 → 。
- 点 。
- 输入此 Local 配置的 Name。配置名称是必需的,在所有验证器间都必须是唯一的,且不得超过 512 个字符。
- 从 Authentication type 列表中选择 Local。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 点击 。
2.5.2. 配置 LDAP 身份验证 复制链接链接已复制到粘贴板!
作为平台管理员,您可以将 LDAP 配置为 Ansible Automation Platform 用户的帐户身份验证信息的来源。
如果要连接的 LDAP 服务器有由内部证书颁发机构(CA)自签名或签名的证书,则必须将 CA 证书添加到系统的可信 CA 中。否则,到 LDAP 服务器的连接会导致证书签发者无法识别的错误。
配置 LDAP 后,会为使用 LDAP 用户名和密码登录的任何用户创建一个帐户,并可作为常规用户或机构管理员自动将其放置到机构中。
Ansible Automation Platform 将用户名视为 LDAP 中不区分大小写。它将在不修改的情况下输入的用户名发送到 LDAP 供应商以进行身份验证。身份验证成功后,平台会将用户名转换为小写,并将其存储在数据库中。例如,如果用户以 JDOE 身份登录,其平台用户名是 jdoe。如果用户再次以 JDoe 身份登录,其用户名仍会是 jdoe。
但是,如果 Ansible Automation Platform 配置了多个 LDAP 验证器,并且其中存在相同的用户 ID,则它们的用户名可能会有所不同。例如,JDOE 可能具有用户名 jdoe,而 jDOE 可以分配 jdoe-<some hash& gt;。
如果用户之前使用其用户名的不同问题单变体登录,Ansible Automation Platform 会将所有问题单更改映射到小写的用户名。对于交互式登录,具有其他案例变化的现有用户无效。但是,混合问题单用户名的任何现有 OAuth 令牌仍允许身份验证。如果需要,系统管理员可以删除这些案例变体用户。
通过 LDAP 登录创建的用户不应为自己更改用户名、名、姓或设置本地密码。下次登录平台时,对此信息所做的任何更改都会被覆盖。
在平台 UI 中,2.4 不支持将 LDAP 身份验证设置迁移到 2.5。如果您要从 Ansible Automation Platform 2.4 升级到 2.5,请务必在升级前保存身份验证供应商数据。
步骤
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 LDAP。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
- 在 LDAP Server URI 字段中,输入或修改您要连接的 LDAP 服务器列表。此字段支持多个地址。
在 LDAP 绑定 DN 文本字段中,输入 Distinguished Name (DN)以指定 Ansible Automation Platform 用来连接到 LDAP 服务器的用户,如下例所示:
cn=josie,cn=users,dc=website,dc=com
cn=josie,cn=users,dc=website,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 LDAP Bind Password 文本字段中,输入用于绑定用户的密码。
从 LDAP Group Type 列表中选择一个组类型。
group type 定义组的类名称,后者管理 LDAP 目录中与用户关联的组,并由此流程的第 14 步中指定的搜索返回。组类型以及组参数和组搜索用于在登录期间查找和为用户分配组,也可以在映射过程中评估。下表列出了可用的组类型,以及它们的描述以及每个组所需的参数。默认情况下,通过获取 cn 属性的第一个值,LDAP 组将映射到 Django 组。您可以使用
name_attr指定不同的属性。例如,name_attr='cn'。Expand 表 2.1. 可用的 LDAP 组类型 LDAP 组类型 描述 initializer 方法(init) PosixGroupType处理
posixGroup对象类。这会检查主组和组成员资格。name_attr='cn'MemberDNGroupType处理 group 对象中包含其成员 DN 列表的分组机制。
member_attr, name_attr='cn'GroupOfNamesType处理
groupOfNames对象类。等同于MemberDNGroupType ('member')。name_attr='cn'GroupOfUniqueNamesType处理
groupOfUniqueNames对象类。等同于MemberDNGroupType ('uniqueMember')。name_attr='cn'ActiveDirectoryGroupType处理 Active Directory 组。等同于
MemberDNGroupType ('member')。name_attr='cn'OrganizationalRoleGroupType处理
organizationalRole对象类。等同于MemberDNGroupType ('roleOccupant')。name_attr='cn'NestedGroupOfNamesType处理
groupOfNames对象类。等同于NestedMemberDNGroupType ('member')。member_attr, name_attr='cn'NestedGroupOfUniqueNamesType处理
groupOfUniqueNames对象类。等同于NestedMemberDNGroupType ('uniqueMember')。name_attr='cn'NestedActiveDirectoryGroupType处理 Active Directory 组。等同于
NestedMemberDNGroupType ('member')。name_attr='cn'NestedOrganizationalRoleGroupType处理
organizationalRole对象类。等同于NestedMemberDNGroupType ('roleOccupant')。name_attr='cn'注意Ansible Automation Platform 支持的组类型使用底层 django-auth-ldap 库。要为所选组类型指定参数,请参阅此步骤的第 14 步。
您可以使用 LDAP 用户 DN 模板 作为用户搜索的替代选择。这种方法对于用户查找效率要高,而不是搜索在您的机构环境中。输入模板的名称,如下例所示:
uid=%(user)s,cn=users,cn=accounts,dc=example,dc=com
uid=%(user)s,cn=users,cn=accounts,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
uid是用户标识符,cn是通用名称,dc是域组件。注意如果此设置具有值,它将被使用,而不是 LDAP 用户搜索设置。
- LDAP Start TLS 默认禁用。STARTTLS 允许您的 LDAP 连接使用传输层安全(TLS)从未加密的连接升级到安全连接。要在 LDAP 连接没有使用 SSL 时启用 StartTLS,请将开关设置为 On。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
输入为 LDAP 连接 设置的任何 LDAP 连接选项。默认情况下,禁用 LDAP 引用,以防止某些 LDAP 查询与 Active Directory 挂起。选项名称应该是字符串,如下例所示:
OPT_REFERRALS: 0 OPT_NETWORK_TIMEOUT: 30
OPT_REFERRALS: 0 OPT_NETWORK_TIMEOUT: 30Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关可设置的选项和值,请参阅 python-LDAP 参考。
根据所选的 LDAP 组类型, LDAP Group Type Parameters 字段中提供了不同的参数。
LDAP_GROUP_TYPE_PARAMS是一个字典,它转换为kwargs,并传递给所选的 LDAP 组类型 类。组类型使用两种常用参数:name_attr和member_attr。其中name_attr默认为cn,member_attr默认为member:{"name_attr": "cn", "member_attr": "member"}{"name_attr": "cn", "member_attr": "member"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要确定特定 LDAP 组类型需要的参数,请参阅类
init参数上的 django_auth_ldap 文档。在 LDAP Group Search 字段中,指定应搜索哪些组以及如何搜索它们,如下例所示:
[ "dc=example,dc=com", "SCOPE_SUBTREE", "(objectClass=group)" ]
[ "dc=example,dc=com", "SCOPE_SUBTREE", "(objectClass=group)" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 LDAP User Attribute Map 字段中,输入用户属性,将 LDAP 字段映射到您的 Ansible Automation Platform 用户,如
email或first_name,如下例所示:{ "first_name": "givenname", "last_name": "sn", "email": "mail" }{ "first_name": "givenname", "last_name": "sn", "email": "mail" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 LDAP User Search 字段中输入在身份验证期间搜索用户的位置,如下例所示:
[ "ou=users,dc=website,dc=com", "SCOPE_SUBTREE", "(cn=%(user)s)" ]
[ "ou=users,dc=website,dc=com", "SCOPE_SUBTREE", "(cn=%(user)s)" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有设置 LDAP 用户 DN 模板,Ansible Automation Platform 会使用 绑定 DN 模板和 LDAP 绑定 密码对 LDAP 进行身份验证。身份验证后,将执行 LDAP 搜索来查找此字段指定的用户。如果找到了用户,Ansible Automation Platform 会根据 LDAP 搜索发现的用户验证提供的密码。通过输入多个搜索术语,支持带有
LDAPUnion的用户支持多个搜索查询,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果在多次搜索过程中找到非唯一的用户,则这些用户将无法登录到 Ansible Automation Platform。根据提供的示例,如果在
ou=users,dc=example,dc=com和ou=employees,dc=subdivision,dc=com中都找不到带有uid=jdoe的用户,则jdoe用户都无法登录。在任一分支中找到的所有其他唯一用户仍然可以登录。注意如果填充了字段 LDAP 用户 DN 模板,它将优先于 LDAP User Search 字段,只有模板才会用于验证用户。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
2.5.2.1. 在用于 LDAPS 集成的自动化控制器中导入证书颁发机构 复制链接链接已复制到粘贴板!
您可以使用 LDAP 向自动化控制器服务器进行身份验证。但是,如果您更改为使用 LDAPS (通过 SSL/TLS 进行 LDAP)进行验证,并且平台网关不信任 TLS 证书,则会失败并显示以下错误:
2025-08-26 16:40:56,141 WARNING django_auth_ldap Caught LDAPError while authenticating: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': [], 'info': 'error:0A000086:SSL routines::certificate verify failed (self-signed certificate)'})
2025-08-26 16:40:56,141 WARNING django_auth_ldap Caught LDAPError while authenticating: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': [], 'info': 'error:0A000086:SSL routines::certificate verify failed (self-signed certificate)'})
要让 Ansible Automation Platform 信任来自 LDAP 的证书,请在所有平台网关实例上执行以下步骤。
步骤
-
将 LDAP 服务器证书的副本放在目录
/etc/pki/ca-trust/source/anchors/中。 运行命令:
update-ca-trust
update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. 配置 SAML 身份验证 复制链接链接已复制到粘贴板!
SAML 允许身份提供程序(IdP)和服务提供商(SP)交换身份验证和授权数据。Ansible Automation Platform 是一个 SAML SP,您可以配置与一个或多个 SAML IdP 通信来验证用户。
根据 SAML IdP 提供的组和属性,可以根据与这个验证器关联的验证器映射,将用户放置到 Ansible Automation Platform 中的团队和机构中。此映射可确保用户通过 SAML 登录时,Ansible Automation Platform 可以正确识别用户并分配正确的属性,如名字、姓氏、电子邮件和组成员资格。
先决条件
在 Ansible Automation Platform 中配置 SAML 身份验证前,请确定您执行以下操作:
- 配置 SAML 身份提供程序(IdP)。
使用与 Ansible Automation Platform 集成所需的设置预配置 SAML IdP。例如,在 Microsoft Entra ID 中,您可以配置以下内容:
- Identifier (Entity ID): 这可以是您想要的任何值,但需要与 Ansible Automation Platform 中配置的值匹配。
- 回复 URL (Assertion Consumer Service (ACS) URL : 当 Ansible Automation Platform 中配置了 SAML 方法时,会自动生成此 URL。该值必须从 Ansible Automation Platform 复制,并粘贴到 IdP 设置中。
- 为 SAML IdP 应用程序收集用户属性。不同的 IdP 可能会使用不同的属性名称和格式。有关确切的属性名称和预期值,请参阅特定 IdP 的文档。
使用以下命令生成私钥和公共证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
步骤
- 在导航面板中,选择 → 。
- 点 。
- 输入此 SAML 配置的 Name。
- 从 Authentication type 列表中选择 SAML。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
- 在 SAML Service Provider Entity ID 字段中输入应用程序定义的唯一标识符,用作 SAML 服务提供商实体 ID 字段中的 SAML 服务提供商配置的使用者。这通常是服务供应商的基本 URL,但实际值取决于您的 IdP 所预期的实体 ID。
-
在 SAML Service Provider Public Certificate 字段中包含证书内容。此信息包含在您作为先决条件创建的 cert.pem 中,必须包含--
BEGIN CERTIFICATE-- 和--END CERTIFICATE--。 -
在 SAML Service Provider Private Key 字段中包含私钥内容。此信息包含在您作为先决条件创建的 key.pem 中,必须包含--
BEGIN PRIVATE KEY-- 和--END PRIVATE KEY--。 - 在 IdP Login URL 字段中输入要重定向至 的登录登录的 URL。这是 SAML IdP 应用程序的登录 URL。
在 IdP Public Cert 字段中输入来自 IdP 的 secret 的公共证书。这是可从 IdP 下载的 SAML 证书。
注意IdP Public Cert 字段中的 IdP 应包含整个证书,包括--
BEGIN CERTIFICATE-- 和--END CERTIFICATE--。如果 IdP 没有包含前缀和后缀,则必须手动输入前缀和后缀。- 在实体 ID 中输入断言返回的 实体 ID。这是 IdP SAML 应用程序的标识符。您可以在 IdP 提供的 SAML 元数据中找到这个值。
- 在 Groups, User Email, Username, User Last Name and User First Name 中输入用户详细信息。
在 User Permanent ID 字段中输入用户的永久 ID。此字段是必需的。
注意其他属性可能通过 SAML IdP 提供。这些值必须包含在 Additional Authenticators 字段或 SAML IDP to extra_data 属性映射 字段中。详情请参考这些步骤。
- SAML Assertion Consumer Service (ACS) URL 字段将服务注册为服务提供者(SP),其中包含您配置的每个身份提供程序(IdP)。将此字段留空。保存这个验证方法后,会自动生成它。此字段必须与 IdP 中的 Reply URL 设置匹配。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。例如,要确保为映射包含 Email, Username, Last Name, First Name 以外的所有 SAML IdP 属性,请输入:
GET_ALL_EXTRA_DATA: true
GET_ALL_EXTRA_DATA: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以在 SAML IDP 到 extra_data 属性映射字段中包含 SAML IdP 属性 列表。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
在 SAML Service Provider Organization Info 字段中,提供 URL、显示名称和应用程序的名称。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 SAML Service Provider Technical contact 字段中,为您的服务提供商提供技术联系人的名称和电子邮件地址。
{ "givenName": "Some User", "emailAddress": "suser@example.com" }{ "givenName": "Some User", "emailAddress": "suser@example.com" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 SAML Service Provider Support Contact 字段中,为您的服务提供商提供支持联系人的名称和电子邮件地址。
{ "givenName": "Some User", "emailAddress": "suser@example.com" }{ "givenName": "Some User", "emailAddress": "suser@example.com" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:在 SAML 服务提供商额外配置数据 字段中提供额外的配置数据。例如,您可以选择为添加的安全性启用签名请求:
{ "sign_request": True, }{ "sign_request": True, }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此字段等同于 API 中的
SOCIAL_AUTH_SAML_SP_EXTRA。如需更多信息,请参阅 OneLogin 的 SAML Python Toolkit 来了解有关有效的服务提供商额外(SP_EXTRA)参数的信息。可选:在 SAML Security Config 字段中提供安全设置。此字段等同于 API 中的
SOCIAL_AUTH_SAML_SECURITY_CONFIG字段。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息和附加选项,请参阅 OneLogin 的 SAML Python Toolkit。
可选:在 SAML IDP 到 extra_data 属性映射 字段中,输入值以将 IDP 属性映射到 extra_data 属性。这些值会包括除要映射的标准属性外的其他用户信息,如 Email 或 Username。例如:
- Department - UserType - Organization
- Department - UserType - OrganizationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 有关您可以包含的值的更多信息,请参阅高级 SAML 设置。
重要确保包含所有相关值,以便所有内容都为您的配置正确映射。或者,您可以在 Additional Authenticator 字段中包含
GET_ALL_EXTRA_DATA: true,以允许映射所有可用的 SAML IdP 属性。- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
您可以在基于 operator 的部署中为 SAML 配置 HTTPS 重定向,以简化用户的登录。有关配置此设置的步骤,请参阅 在 OpenShift Container Platform 上为平台网关启用单点登录(SSO)。
2.5.3.1. 配置透明 SAML 登录 复制链接链接已复制到粘贴板!
要使透明登录正常工作,您必须首先使 IdP 启动的登录正常工作。
流程
-
将 IdP 上的
RelayState设置为 "IdP"。
2.5.4. 配置 TACACS+ 身份验证 复制链接链接已复制到粘贴板!
Terminal Access Controller Access-Control System Plus (TACACS+)是一个协议,它处理通过集中服务器进行联网访问控制的远程身份验证和相关服务。TACACS+ 提供身份验证、授权和核算(AAA)服务,您可以在其中配置 Ansible Automation Platform 以用作身份验证的来源。
这个功能已被弃用并将在以后的发行版本中被删除。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 TACACS+。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
输入以下信息:
- TACACS+ 服务器的主机名:提供要进行身份验证的 TACACS+ 服务器的主机名或 IP 地址。如果将此字段留空,则禁用 TACACS+ 身份验证。
- TACACS+ 身份验证协议:TACACS+ 客户端使用的协议。这些选项是 ascii 或 pap。
- 用于向 TACACS+ 服务器进行身份验证的共享机密:TACACS+ 身份验证服务器的 secret 密钥。
- 默认情况下,启用了 TACACS+ 客户端地址发送。要启用客户端地址发送,请选中复选框。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
单击 。
2.5.5. 配置 Microsoft Entra ID 身份验证 复制链接链接已复制到粘贴板!
要为 Microsoft Entra ID (以前称为 Microsoft Azure Active Directory (AD))设置企业级身份验证,请按照以下步骤操作:
- 使用此流程中的步骤将 Ansible Automation Platform 配置为使用 Microsoft Entra ID 身份验证。
- 按照 Quickstart: 将应用程序注册到 Microsoft Entra ID,在 Microsoft Entra ID 中注册Ansible Automation Platform 。这个过程为您提供了应用程序(客户端)ID 和应用程序 secret。
- 在 Microsoft Entra ID 中添加重定向 URL。在平台中为 Microsoft Entra ID 身份验证完成配置向导后,复制 Azure AD OAuth2 Callback URL 字段中显示的 URL。然后,进入您在 Azure 中注册的企业应用,并将此 URL 添加为 Redirect URL (也称为 Ansible Automation Platform 中的 回调 URL ),如 如何将重定向 URI 添加到您的应用程序 中所述。登录流正常工作需要这一步。
Microsoft Entra ID 提供的属性不在 Ansible Automation Platform 配置中为此身份验证类型设置。相反,social_core azuread 后端 提供 Microsoft Entra ID 提供的声明转换。允许 Ansible Automation Platform 正确识别用户并分配正确的属性,如名字、姓氏、电子邮件和用户名,包括:
| Ansible Automation Platform 属性 | Microsoft Entra ID 参数 |
|---|---|
| authenticator_uid | UPN |
| 用户名 | name |
| First Name | given_name |
| Last Name | family_name |
| | 电子邮件(备份至上) |
每个密钥和 secret 必须属于一个唯一的应用,且不能在不同的身份验证后端之间共享或重复使用。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 Azuread。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
- 点 ,将 Microsoft 的应用(客户端)ID 复制并粘贴到 OIDC Key 字段中。
如果您的 Microsoft Entra ID 配置为在组声明中提供用户组信息,请确保平台配置了与您的 Microsoft Entra ID 配置匹配的 Groups Claim 名称。这允许平台通过 Microsoft Entra ID 正确识别和关联用户登录的组。
注意来自 Microsoft Entra ID 的组可以使用唯一的 ID 或组名称来识别。为 Microsoft Entra ID 验证器创建组映射时,您可以使用唯一的 ID 或组名称。
默认情况下,Microsoft Entra ID 使用 groups 作为默认组声明名称。因此,请确保将值设置为默认值,或设置为 IdP 中设置的任何自定义覆盖。除非明确更改,否则当前默认会被设置为保留现有行为。
- 按照将 应用程序注册到 Microsoft 身份平台 的说明,向客户端提供密钥(仅显示一次)以进行身份验证。
- 将为 Microsoft Entra ID/Microsoft Azure AD 应用程序创建的 secret 密钥复制并粘贴到 OIDC Secret 字段中。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.6. 配置 Google OAuth2 身份验证 复制链接链接已复制到粘贴板!
要为 Google 设置社交身份验证,您必须获取 web 应用程序的 OAuth2 密钥和 secret。要做到这一点,您必须首先创建一个项目并使用 Google 设置。
具体步骤,请参阅 Google API 控制台帮助文档中的 设置 OAuth 2.0。
如果您已经完成了设置过程,可以通过进入 Google API Manager Console 的 Credentials 部分来访问这些凭证。OAuth2 密钥(客户端 ID)和机密(客户端机密)用于提供 UI 中的必填字段。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 Google OAuth。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
Google OAuth2 Key 和 Google OAuth2 Secret 字段已预先填充。
如果没有,在 web 应用程序设置过程中使用提供的 Google 凭证。在以下步骤中保存这些设置以供使用。
- 将 Google 的客户端 ID 复制并粘贴到 Google OAuth2 Key 字段中。
- 将 Google 的客户端 secret 复制并粘贴到 Google OAuth2 Secret 字段中。
可选:使用为说明和所需格式提供的工具提示输入以下字段的信息:
- 访问令牌 URL
- 访问令牌方法
- 授权 URL
- 撤销令牌方法
- 撤销令牌 URL
- OIDC JWT 算法
- OIDC JWT
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
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)发现端点中。
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存您的更改。系统使用这些指定的算法进行令牌验证,从而解决了与它们没有相关的任何身份验证失败。
2.5.7.1.2. 为企业级身份验证启用调试 复制链接链接已复制到粘贴板!
要进一步诊断身份验证问题,请在平台网关中启用调试日志。
流程
-
更改平台网关的
settings.py文件中的日志记录配置。 将
ansible_baselogger 的日志记录级别设置为DEBUG:LOGGING['loggers']['ansible_base']['level'] = 'DEBUG'
LOGGING['loggers']['ansible_base']['level'] = 'DEBUG'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在此更改后,日志中会显示详细的
AuthTokenError消息,提供有关故障原因的具体信息。
2.5.7.1.3. Generic OIDC 范围不匹配故障排除 复制链接链接已复制到粘贴板!
当身份提供程序(IdP)不支持系统自动附加的默认范围时,身份验证会失败。
要防止系统附加此默认范围,您必须在验证器配置中添加一个设置。
流程
- 在导航面板中,选择 → 。
- 从列表中选择您的 OIDC authenticator。
- 单击 。
在 Additional Authenticator Fields 部分中,添加以下属性和值。此输入框支持 YAML 或 JSON。如果存在其他字段,请确保在新行中添加此键值对:
IGNORE_DEFAULT_SCOPE: True
IGNORE_DEFAULT_SCOPE: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存您的更改。验证器现在只使用您明确定义的范围,从而解决了与不支持的范围相关的任何身份验证失败。
2.5.8. 配置 keycloak 身份验证 复制链接链接已复制到粘贴板!
您可以配置 Ansible Automation Platform 以集成 Keycloak 以管理用户身份验证。
当使用这个验证器时,需要在您的 Keycloak 实例中进行一些特定的设置。如需了解更多详细信息,请参阅 Python Keycloak 参考。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 Keycloak。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
- 在 Keycloak Access Token URL 字段中输入用户令牌检索的位置。
- 可选:在 Keycloak Provider URL 字段中的登录流中输入用户要指向的重定向位置。
- 在 Keycloak OIDC Key 字段中输入 Keycloak 安装中的客户端 ID。
- 在 Keycloak Public Key 字段中输入您的 Keycloak 域提供的 RS256 公钥。
- 在 Keycloak OIDC Secret 字段中输入来自 Keycloak 安装的 OIDC secret (客户端 Secret)。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
故障排除
如果您收到 jwt.exceptions.InvalidAudienceError: Audience doesn't match 错误,则必须通过执行以下操作重新启用 audience:
- 在 Keycloak 配置的导航中,选择 → → → 。
- 为映射器选择一个名称。
-
在
Included Client Audience中,选择与您的客户端对应的客户端 ID。
2.5.9. 配置 GitHub 身份验证 复制链接链接已复制到粘贴板!
您可以使用 OAuth 将 GitHub 身份连接到 Ansible Automation Platform。要设置 GitHub 身份验证,您需要使用 将新 应用程序注册到 GitHub,从 GitHub 注册您的机构拥有的应用,从 GitHub 获取 OAuth2 密钥和 secret。
OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 GitHub。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
注册应用程序时,GitHub 会显示 客户端 ID 和客户端 Secret :
- 将 GitHub 客户端 ID 复制并粘贴到 GitHub OAuth2 Key 字段中。
- 将 GitHub Client Secret 复制并粘贴到 GitHub OAuth2 Secret 字段中。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.10. 配置 GitHub 机构身份验证 复制链接链接已复制到粘贴板!
当使用机构或机构中的团队定义帐户身份验证时,您应该使用特定的机构和团队设置。帐户身份验证可以被机构和机构中的团队限制。您还可以通过指定基于非机构或非团队的设置来选择允许所有设置。您可以通过只限制机构或机构中的团队来限制可以登录到平台的用户。
要为 GitHub 组织设置社交身份验证,您必须使用 将新应用程序注册到 GitHub 来获取 web 应用程序的 OAuth2 密钥和 secret。
OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 GitHub organization。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
注册应用程序时,GitHub 会显示 客户端 ID 和客户端 Secret :
- 将 GitHub 客户端 ID 复制并粘贴到 GitHub OAuth2 Key 字段中。
- 将 GitHub Client Secret 复制并粘贴到 GitHub OAuth2 Secret 字段中。
-
输入 GitHub 机构的名称,如您的组织 URL 中使用,例如,GitHub OAuth Organization Name
字段中的 https://github.com/<yourorg>/。 可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
-
在 GitHub OAuth2 Scope 字段中输入用户的授权范围。默认为
read:org。 - 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.11. 配置 GitHub 团队身份验证 复制链接链接已复制到粘贴板!
要为 GitHub 团队设置社交身份验证,您必须使用将 新应用注册到 GitHub 中的说明获取 web 应用程序的 OAuth2 密钥和 secret。
OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的 回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
每个密钥和 secret 必须属于一个唯一的应用,且不能在不同的身份验证后端之间共享或重复使用。OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 GitHub team。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
注册应用程序时,GitHub 会显示 客户端 ID 和客户端 Secret :
- 将 GitHub 客户端 ID 复制并粘贴到 GitHub OAuth2 Key 字段中。
- 将 GitHub Client Secret 复制并粘贴到 GitHub OAuth2 Secret 字段中。
- 在 GitHub OAuth2 Team ID 字段中复制并粘贴 GitHub 团队 ID。
-
在 GitHub OAuth2 Scope 字段中输入用户的授权范围。默认为
read:org。 可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.12. 配置 GitHub 企业级身份验证 复制链接链接已复制到粘贴板!
要为 GitHub 企业设置社交身份验证,您必须获取 web 应用程序的 GitHub Enterprise URL、API URL、OAuth2 密钥和 secret。
要获取 URL,请参阅 GitHub Enterprise 管理文档。
OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的 回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
每个密钥和 secret 必须属于一个唯一的应用,且不能在不同的身份验证后端之间共享或重复使用。OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 GitHub enterprise。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
注册应用程序时,GitHub 会显示 客户端 ID 和客户端 Secret :
- 将 GitHub 客户端 ID 复制并粘贴到 GitHub OAuth2 Key 字段中。
- 将 GitHub Client Secret 复制并粘贴到 GitHub OAuth2 Secret 字段中。
-
在 Base URL 字段中,输入 GitHub Enterprise 实例的主机名,例如
https://github.example.com。 -
在 Github OAuth2 Enterprise API URL 字段中,输入 GitHub Enterprise 实例的 API URL,例如
https://github.example.com/api/v3。 可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.13. 配置 GitHub 企业机构身份验证 复制链接链接已复制到粘贴板!
要为 GitHub 企业组织设置社交身份验证,您必须获取 GitHub 企业机构 URL、机构 API URL、机构 OAuth2 密钥和 web 应用程序的 secret。
要获取 URL,请参阅 GitHub Enterprise 管理文档。
OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的 回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
每个密钥和 secret 必须属于一个唯一的应用,且不能在不同的身份验证后端之间共享或重复使用。OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 GitHub enterprise organization。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
注册应用程序时,GitHub 会显示 客户端 ID 和客户端 Secret :
- 将 GitHub 客户端 ID 复制并粘贴到 GitHub OAuth2 Key 字段中。
- 将 GitHub Client Secret 复制并粘贴到 GitHub OAuth2 Secret 字段中。
-
在 Base URL 字段中,输入 GitHub Enterprise 实例的主机名,例如
https://github.example.com。 -
在 Github OAuth2 Enterprise API URL 字段中,输入 GitHub Enterprise 实例的 API URL,例如
https://github.example.com/api/v3。 -
输入 GitHub 企业机构的名称,如您的组织 URL 中使用,例如 GitHub OAuth2 Enterprise Org Name 字段中的
https://github.com/<yourorg>/。 可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.14. 配置 GitHub 企业团队身份验证 复制链接链接已复制到粘贴板!
要为 GitHub 企业团队设置社交身份验证,您必须获取 GitHub Enterprise Organization URL、机构 API URL、机构 OAuth2 密钥和 web 应用程序的 secret。
要获取 URL,请参阅 GitHub Enterprise 管理文档。
要获取密钥和 secret,您必须首先在 https://github.com/organizations/<yourorg>/settings/applications 注册您的企业拥有的应用程序。
OAuth2 密钥(客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。要注册应用程序,您必须为其提供网页 URL,这是验证器配置的 Authenticator 详情中显示的 回调 URL。有关访问此信息的说明,请参阅 显示验证器详情。
每个密钥和 secret 必须属于一个唯一的应用,且不能在不同的身份验证后端之间共享或重复使用。OAuth2key (客户端 ID)和机密(客户端 Secret)用于提供 UI 中的必填字段。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 GitHub enterprise team。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
注册应用程序时,GitHub 会显示 客户端 ID 和客户端 Secret :
- 将 GitHub 客户端 ID 复制并粘贴到 GitHub OAuth2 Key 字段中。
- 将 GitHub Client Secret 复制并粘贴到 GitHub OAuth2 Secret 字段中。
-
在 Base URL 字段中,输入 GitHub Enterprise 实例的主机名,例如
https://github.orgexample.com。 -
在 Github OAuth2 Enterprise API URL 字段中,输入 GitHub Enterprise 实例的 API URL,例如
https://github.example.com/api/v3。 - 在 GitHub OAuth2 团队 ID 字段中,输入 GitHub 开发人员应用中的 OAuth2 密钥(客户端 ID)。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
验证
要验证是否已正确配置了身份验证,请注销 Ansible Automation Platform,检查登录屏幕是否显示您选择的验证方法的徽标,以启用使用这些凭证登录。
2.5.15. 配置 RADIUS 身份验证 复制链接链接已复制到粘贴板!
您可以将 Ansible Automation Platform 配置为集中使用 RADIUS 作为身份验证信息的来源。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入此身份验证配置的 Name。
- 从 Authentication type 列表中选择 Radius。Authentication details 部分自动更新,以显示与所选验证类型相关的字段。
- 从 Auto migrate users from 列表中选择一个旧的验证器方法。从 2.4 升级到 2.5 后,这是旧的验证器,用于从中自动将用户迁移到这个新的身份验证配置。有关迁移用户的重要信息,请参阅 RPM 升级和迁移指南中的 Ansible Automation Platform 升级后步骤。
- 在 RADIUS Server 字段中输入 RADIUS 服务器的主机或 IP。如果将此字段留空,则禁用 RADIUS 身份验证。
- 输入 Shared secret,以向 RADIUS 服务器进行身份验证。
可选:输入此验证器可以采用的任何其他 身份验证器字段。这些字段不会被验证,并直接传递给验证器。
注意此字段中定义的值覆盖 UI 中提供的专用字段。此处未定义的任何值都不提供给验证器。
- 要在成功登录时自动创建机构、用户和团队,请选择 Create objects。
- 要在创建时启用此验证方法,请选择 Enabled。
- 要在之前从此来源进行身份验证时添加的任何组删除用户,请选择 Remove users。
- 单击 。
2.6. 映射 复制链接链接已复制到粘贴板!
要控制允许哪些用户进入 Ansible Automation Platform 服务器,并根据它们的属性(如用户名和电子邮件地址)或团队,或者他们所属的组,可以配置验证器映射。
使用验证器映射添加在授予用户获得或拒绝访问资源类型前必须满足的条件。验证器映射与验证器关联,并给出了顺序。用户登录时,会按顺序处理映射。这类似于防火墙规则或邮件过滤器。
2.6.1. 了解验证器映射 复制链接链接已复制到粘贴板!
- 身份验证
- 验证用户的身份,通常是通过用户名和密码或信任系统。
- 授权
- 确定经过身份验证的用户在通过身份验证后可以执行的操作。
在 Ansible Automation Platform 中,验证器管理身份验证,验证用户并返回详情,如用户名、名字、电子邮件和组成员资格(如 LDAP 组)。授权来自验证器的关联映射。
在身份验证过程中,在用户通过身份验证后,授权系统以内存中的默认权限集开始。然后按顺序处理验证器映射,并根据它们的触发器条件调整权限。处理所有验证器的映射后,用户权限的内存中表示会与其现有的权限协调。
例如,以下是默认权限的一个简化内存表示,如下所示:
Access allowed = True Superuser permission = Undefined Admin of teams = None
Access allowed = True
Superuser permission = Undefined
Admin of teams = None
此外,您可能具有需要处理的映射按照以下顺序处理:
- 允许将 规则集设置为 never
- 基于组的允许规则
- 基于用户属性的 超级用户 规则
- 基于 用户组的团队管理规则
第一个 Allow map 设置为 never,拒绝访问系统,内存表示形式如下:
Access allowed = False Superuser permission = Undefined Admin of teams = None
Access allowed = False
Superuser permission = Undefined
Admin of teams = None
但是,如果用户与第二个 Allow map (基于组的 allow)匹配,则权限会更改为以下内容:
Access allowed = True Superuser permission = Undefined Admin of teams = None
Access allowed = True
Superuser permission = Undefined
Admin of teams = None
之后,用户被授予 Ansible Automation Platform 的访问权限,因为它们具有所需的组。
接下来,Super user map 会检查用户属性。如果未找到匹配项,则默认不会撤销现有权限。因此,权限与上一个映射的结果相同:
Access allowed = True Superuser permission = Skipped Admin of teams = None
Access allowed = True
Superuser permission = Skipped
Admin of teams = None
要撤销超级用户访问权限,您可以选择 Superuser 映射上的 Revoke 选项。这样,当用户不满足属性标准时,权限会更新为 False,如下所示:
Access allowed = True Superuser permission = False Admin of teams = None
Access allowed = True
Superuser permission = False
Admin of teams = None
最后的 团队映射 会检查来自团队"我的团队"的 admin 访问验证器的用户组。如果用户有所需的组,则权限会更新至以下内容:
Access allowed = True Superuser permission = False Admin of teams = “My Team”
Access allowed = True
Superuser permission = False
Admin of teams = “My Team”
如果用户缺少所需的组,则权限保持不变,除非映射上选择了 Revoke 选项,在这种情况下,权限会更新为以下内容:
Access allowed = True Superuser permission = False Admin of teams = Revoke admin of “My Team”
Access allowed = True
Superuser permission = False
Admin of teams = Revoke admin of “My Team”
在按照定义的顺序处理所有映射后,最终权限协调后,根据映射规则更新用户的访问权限。
总之,验证器会验证用户,并将系统授权委派给验证器映射。执行验证器映射,以便创建用户权限的内存中表示,该符号在所有映射执行后与实际权限协调。
默认情况下,验证器映射返回 ALLOW 或 SKIPPED。
- ALLOW
- 这意味着检测到匹配项,平台应授予用户对相应角色或权限(如超级用户或团队成员)的访问权限。
- 跳过
- 这意味着用户与映射中的触发器不匹配,平台会跳过处理此映射,并继续检查剩余的映射。如果要在不需要更改验证器映射的情况下授予系统中额外权限,这非常有用。
但是,当选择了 Revoke 选项时,SKIPPED 将变为 DENY,不符合所需触发器条件的用户将被拒绝访问对应的角色或权限。这样可确保只有具有匹配触发器条件的用户才会被授予访问权限。
2.6.2. 验证器映射类型 复制链接链接已复制到粘贴板!
Ansible Automation Platform 支持以下规则类型:
- Allow
- 确定是否允许用户登录系统。
- 机构(Organization)
- 确定用户是否应放入机构中。
- Team
- 确定该用户应该是团队成员。
- 角色
- 确定用户是否为角色的成员(例如,系统审核员)。
- 是超级用户
- 确定该用户是否为系统中的超级用户。
这些身份验证映射类型可用于任何类型的验证器。
2.6.3. 验证器映射触发器 复制链接链接已复制到粘贴板!
每个映射都有一个触发器,用于定义映射应评估为 true 的时间。触发器类型包括:
- Always
- 该触发器应始终触发。
- Never
- 触发器不应触发。
- 组
根据在源系统中有多个组的用户,映射为 true 或 false。有关使用 Group 触发器的信息,请参阅 Authenticator 映射示例。
在定义组触发器时,身份验证映射会扩展使其包含以下选择:
operations : 此字段包含条件设置,这些设置根据指定的 组 标准触发规则的处理。选择包括 和 或。例如,如果选择,并且 登录的用户必须是 Groups 字段中指定的所有组的成员,才能使此触发器为 true。或者,如果您选择 或 登录,或者用户登录必须是任何指定组的成员,才能触发触发器。
注意如果您只对一个组进行密钥,如果您选择 "and" 或" 或",则这无关紧要。
groups : 这是来自用户必须是成员的身份验证系统的一个或多个组的列表。第一次创建 Groups 条目时,您必须手动输入值。输入后,该选择将从 Groups 列表中获得。
请参阅 Operation 字段,以确定触发器的行为(如果触发器中指定了多个组)。
注意组标识符必须以小写形式输入。例如,
cn=johnsmith,dc=example,dc=com而不是CN=johnsmith,DC=example,DC=com。
- 属性
根据来自源系统的用户属性,映射为 true 或 false。有关使用 属性 触发器的信息,请参阅 Authenticator 映射示例。
在定义属性触发器时,身份验证映射会扩展使其包含以下选择:
operations : 此字段包含条件设置,这些设置根据指定的 Attribute 标准触发规则的处理。在版本 2.5 中,此字段指示源系统返回属性列表而不是单个值时会发生什么。例如,如果源系统为用户返回多个电子邮件,并且 Operation 设置为 和,则所有给定电子邮件都必须与触发器 的比较 匹配为 True。如果 Operation 设置为 或,任何返回的电子邮件都将触发器设置为 True,如果它们与触发器中的 比较 匹配。
注意如果要使用多个属性映射来试验,您可以通过 API 完成此操作,但如果通过 UI 保存验证器,则 UI 表单将删除多属性映射。在向映射中添加多个属性时,Operation 也应用到属性。
-
attribute : 来自源系统的属性的名称,此触发器将针对它进行评估。例如,如果您想要根据用户的姓氏而触发的触发器,并且源系统中的姓氏字段名为
users_last_name,则您将在此字段中输入值 'users_last_name'。 比较: 告诉触发器如何评估用户的值。源系统中的 属性 与 触发器 中指定的值进行比较。可用选项包括: 包含、匹配、以、结尾 或等于。 以下是每个 比较 类型的分类:
- 包含 : 值 中指定的字符序列包含在从源返回的属性值中。例如,如果触发器 Value 设置为 'Joy',则 include compare 的属性值将 'John' 的属性值设置为 True,如果触发器 Value 为 'Joy',则为 False。
- 匹配 :触发器上的值被视为 python 正则表达式,并在指定的 Value 和从源系统返回的值之间执行 正则表达式匹配(re.match) (带有 case ignore on)。例如,如果触发器的 Value 是 'Jo',如果来自源的值为 'John' 或 'Joanne',则触发器会返回 True,或者与正则表达式 'Jo' 匹配的任何其他值。如果属性的 source 值是 'Dan',则触发器将返回 False,因为 'Dan' 与正则表达式 'Jo' 不匹配。
- 以: 触发器结尾:触发器将看到源提供的值是否以触发器的指定值结束。 例如,如果源提供了 'John' 的值,如果值为 'n' 或 'on',则触发器将为 True。 如果因为来自源的 值 'John' 的值不是以触发器指定的值 'z',则触发器将为 False。
- 等于 :触发器将看到源提供的值等于(整个) 触发器的 指定的值。例如,如果源返回了值 'John',如果其 Value 被设置为 'John',则触发器将为 True。源返回的 'John' 以外的任何值都会将此触发器设置为 False。
- 在 中: in condition 会检查值是否与多个值之一匹配。在 中 被指定为 compare 时,Value 字段可以是用逗号分开的列表。例如,如果触发器的值为 'John,Donna',如果来自源的属性具有 'John' 或 'Donna',则触发器将为 True。 否则,触发器将为 False。
值 :一个 users 属性将根据 compare 字段 匹配的值。请参阅本节中的 compare 定义中的示例。
注意如果 compare 类型位于 中,此字段可以是用逗号分开的列表(不带空格)。
2.6.4. 验证器映射示例 复制链接链接已复制到粘贴板!
使用以下示例来探索不同的条件,如您可以实施的 groups 和属性值来控制用户对平台的访问。
根据属性将用户添加到机构
在本例中,如果用户具有 Networking 值的 Organization 属性,则将它们添加到 Networking 机构中:
- 页面 的机构 标题表示您要在机构中配置设置权限。
-
网络组织在此字段中输入,是此映射配置的唯一描述性名称。 -
从 Trigger 列表中选择 属性,以根据源系统中的属性来配置身份验证,在这个示例中是
Organization。 -
操作被定义为
或表示,至少有一个条件必须为 true,才能成功进行身份验证。 - 来自源 系统的属性是 Organization。
-
compare 值设置为
matches,这意味着当用户具有Networking的属性 值时,它们将添加到 Networking 机构中。 -
来自源系统的属性值是
Networking。 -
要添加成员的组织的名称是
Networking。 -
用户添加到具有组织
Member 角色的 Networking 机构中。
根据 users 组将用户添加到团队
在本例中,如果用户有以下组之一,您将将用户添加到 Apple 团队:
cn=administrators,ou=aap,ou=example,o=com
cn=administrators,ou=aap,ou=example,o=com
或者
cn=operators,ou=aap,ou=example,co=com
cn=operators,ou=aap,ou=example,co=com
不要升级权限
在本例中,您永远不会将用户升级到超级用户。但请注意,此规则不会撤销用户的超级用户权限,因为未设置 revoke 选项。
根据拥有组的用户升级特权
在本例中,如果您用户属于以下组,则会将用户权限升级到超级用户:
cn=administrators,ou=aap
cn=administrators,ou=aap
使用映射顺序创建异常
由于映射按顺序执行,因此可以创建例外。在前面用于 Do not upgrade 权限 的示例上的扩展,您可以使用更高顺序添加另一个规则,如 Escalate 权限。
第一条规则(不要升级特权)阻止任何用户升级到超级用户,但第二条规则(升级特权)会更改该决定,如果他们位于 Administrators 组中,则会限制超级用户特权。
2.6.5. 允许映射 复制链接链接已复制到粘贴板!
通过允许映射,您可以通过定义必须满足的条件来控制哪些用户可以访问系统。
流程
- 在为验证方法配置身份验证详情后,选择 Mapping 选项卡。
- 从 Add authentication 映射 列表中选择 Allow。
- 输入唯一规则 Name 来标识该规则。
- 从列表中选择 Trigger。有关 映射触发器的更多信息,请参阅 Authenticator 映射触发器。
- 选择 Revoke 在触发器条件不匹配时拒绝用户访问系统。
- 点击 。
2.6.6. 机构映射 复制链接链接已复制到粘贴板!
您可以根据用户名和电子邮件地址等属性,根据属性控制哪些用户放置到哪个 Ansible Automation Platform 机构,或基于验证器提供的组。
当机构映射被积极评估时,如果一个指定的机构没有存在于与映射关联的验证器时,则会创建一个指定的机构。
流程
- 在为验证方法配置身份验证详情后,选择 Mapping 选项卡。
- 从 Add authentication 映射 列表中选择 Organization。
- 输入唯一规则 Name 来标识该规则。
- 从列表中选择 Trigger。有关 映射触发器的更多信息,请参阅 Authenticator 映射触发器。
- 选择 Revoke 在触发器条件不匹配时删除用户对所选机构角色的访问权限。
- 选择与添加或删除用户匹配的 机构。
- 为匹配的用户选择要应用或删除的 Role (如 Organization Admin 或 Organization Member)。
- 点击 。
2.6.7. 团队映射 复制链接链接已复制到粘贴板!
团队映射是来自验证器的团队成员(用户)的映射。
您可以定义每个团队成员资格的选项。对于每个团队,您可以指定哪些用户会自动添加为团队成员,以及哪些用户可以管理团队。
可以为每个帐户身份验证单独指定团队映射。
当团队映射被积极评估时,如果允许相关验证器创建对象,则会创建指定的团队及其机构。
使用属性触发器配置团队映射时,请使用 或 操作。和 操作要求列表中每个单个值都符合触发器成功的比较标准。这很少是预期的行为,因为您通常想在列表中至少需要一个值匹配。
流程
- 在为验证方法配置身份验证详情后,选择 Mapping 选项卡。
- 从 Add authentication map 列表中选择 Team。
- 输入唯一规则 Name 来标识该规则。
- 从列表中选择 Trigger。有关 映射触发器的更多信息,请参阅 Authenticator 映射触发器。
- 选择 Revoke 以删除用户对所选机构角色的访问权限,并在触发器条件不匹配时拒绝用户访问系统。
- 选择与 添加或删除用户匹配的团队和 机构。
- 为匹配的用户选择要应用或删除的 Role (如 Team Admin 或 Team Member)。
- 点击 。
2.6.8. 角色映射 复制链接链接已复制到粘贴板!
角色映射是用户的映射,可以是全局角色,如平台审核员或团队或机构角色。
当团队或机构与适当的角色一起指定时,其行为与机构映射或团队映射相同。
可以为每个帐户身份验证单独指定角色映射。
流程
- 在为验证方法配置身份验证详情后,选择 Mapping 选项卡。
- 从 Add authentication 映射 列表中选择 Role。
- 输入唯一规则 Name 来标识该规则。
- 从列表中选择 Trigger。有关 映射触发器的更多信息,请参阅 Authenticator 映射触发器。
- 选择 Revoke 在没有匹配触发器条件时删除用户的角色。
- 为匹配的用户选择要应用或删除的 Role。
- 点击 。
2.6.9. 超级用户映射 复制链接链接已复制到粘贴板!
超级用户映射是用户到超级用户角色的映射,如系统管理员。
流程
- 在为验证方法配置身份验证详情后,选择 Mapping 选项卡。
- 从 Add authentication mapping 列表中选择 Superuser。
- 输入唯一规则 Name 来标识该规则。
- 从列表中选择 Trigger。有关 映射触发器的更多信息,请参阅 Authenticator 映射触发器。
- 选择 Revoke 在没有匹配触发器条件时,从用户中删除超级用户角色。
- 点击 。
2.6.10. 在 Ansible Automation Platform 2.5 中撤销部分管理员角色 复制链接链接已复制到粘贴板!
当系统管理员(is_superuser)角色通过 Ansible Automation Platform 2.5 中任何验证方法的身份验证映射撤销时,撤销不会完全级联。
用户丢失平台网关 系统管理员 角色,但保留以下组件管理员角色:
- 自动化执行环境管理员 (Automation controller)
- 自动化决策管理员 (Event-Driven Ansible)
- Automation Content Administrator (自动化中心)
只有在外部身份验证供应商触发令牌撤销时才会出现这个问题。平台网关 UI 中用户启动的手动撤销可以正常工作。这个行为在 Ansible Automation Platform 2.6 中更新,以确保在所有组件间都满足 System Administrator 值,无论它是如何撤销的。
要在映射的身份验证撤销后完全删除所有管理特权,本地管理员必须执行以下手动步骤:
流程
- 使用 System Administrator 帐户登录到平台网关。
- 在导航面板中,选择 → 并点所需用户。
- 在 Roles 选项卡中,删除以下保留角色: Automation Execution Administrator、Automation Decision Administrator 和 Automation Content Administrator。
2.6.11. 查看验证器映射结果 复制链接链接已复制到粘贴板!
作为平台管理员,您可以通过 API api/gateway/v1/users/X 中的用户页面查看验证器映射结果,以查看用户登录平台时如何评估映射。
2.7. 在 Ansible Automation Platform 中管理身份验证 复制链接链接已复制到粘贴板!
配置身份验证设置后,您可以查看验证器列表、搜索、排序并查看系统上配置的每个验证器的详情。
2.7.1. 身份验证列表视图 复制链接链接已复制到粘贴板!
在 Authentication Methods 页面中,您可以查看和管理您的机构配置的身份验证方法。
流程
在导航面板中,选择 → 。
此时会显示 Authentication Methods 页面。
- 点 并按照 配置身份验证类型 中的创建验证方法 的步骤进行操作。否则,继续执行第 3 步。
- 在菜单栏中,您可以使用菜单栏中的箭头( Order、Name 和 Authentication type )对身份验证方法进行排序。
- 点切换到 Enable 或 Disable authenticators。
2.7.2. 搜索验证器 复制链接链接已复制到粘贴板!
您可以从 Authentication 列表视图中搜索之前配置的验证器。
流程
- 在导航面板中,选择 → 。
- 在搜索栏中,为您要搜索的身份验证方法输入适当的关键字,然后单击箭头图标。
- 如果您找不到查找的内容,您可以缩小搜索范围。在过滤器列表中,根据您要使用的搜索词选择 Name 或 Authentication type。
- 滚动浏览搜索结果列表,然后选择您要查看的验证器。
2.7.3. 显示验证器详情 复制链接链接已复制到粘贴板!
找到您要查看的验证器后,可以显示配置详情:
流程
- 在导航面板中,选择 → 。
在列表视图中,选择 Name 列中显示的验证器名称。
此时会显示 authenticator Details 页面。
- 在 Details 页面中,您可以查看应用到验证器的配置设置。
2.7.4. 编辑验证器 复制链接链接已复制到粘贴板!
您可以从 Authentication 列表视图中修改之前配置的验证器的设置。
流程
- 在导航面板中,选择 → 。
在列表视图中,您可以:
-
选择您要修改验证器旁边的
图标,或者
- 选择 Name 列中显示的验证器名称,再单击 Details 页面中的 。
-
选择您要修改验证器旁边的
- 根据需要修改身份验证详情或映射配置。
- 点击 。
2.7.5. 删除验证器 复制链接链接已复制到粘贴板!
您可以从 Authentication 列表视图中修改之前配置的验证器的设置。
流程
- 在导航面板中,选择 → 。
- 在列表视图中,选择您要删除的验证器旁边的复选框。
从 swig 列表中选择 Delete authentication。
注意您可以通过选择您要删除的每个验证器旁边的复选框来删除多个验证器,然后点菜单栏上的 Delete selected authentication。
2.7.6. Google Cloud Platform 网络配置以提高身份验证性能 复制链接链接已复制到粘贴板!
在 Google Cloud Platform (GCP)环境中,大量流量可能会导致身份验证和性能问题,因为 GCP Cloud NAT 网关上设置了低默认端口限制。虽然此配置会影响所有 GCP 部署,但在 OpenShift 上部署 Ansible Automation Platform 时(版本 4.17 及更高版本)发生达到这个限制的最大风险。
在 GCP 上的 OpenShift 安装中 每个虚拟机实例(版本 4.17 及更高版本)中的 Cloud NAT 网关的最小端口的 默认设置为 64。当平台网关处理并发外部网络连接(如单点登录(SSO)请求)时,这个低端口限制可能会快速耗尽。当达到限制时,它会防止新的传出连接,从而导致身份验证失败或严重性能下降。
2.7.6.1. 增加最小端口 复制链接链接已复制到粘贴板!
要解决这个问题,请手动增加与 worker 节点关联的 Cloud NAT 网关 的每个虚拟机实例设置的最小端口。
使用 Google Cloud Console 应用这个临时解决方案。
流程
- 前往 Cloud NAT 服务。
- 查找并选择为 OpenShift 集群 worker 节点配置的 NAT 网关。
对于每个虚拟机实例设置的最小端口,将默认值 64 增加到一个更高的值,以适应您预期的流量卷。
增加这个限制可确保有足够的可用端口进行外部通信,从而减少了高容量身份验证和外部通信任务期间性能问题的可能性。
第 3 章 使用基于令牌的身份验证配置对外部应用程序的访问 复制链接链接已复制到粘贴板!
基于令牌的身份验证允许通过集成的 OAuth 2 令牌支持通过平台验证第三方工具和服务。Ansible Automation Platform 使用 OAuth 令牌和个人访问令牌(PAT)。
- OAuth 令牌
- OAuth 令牌与特定应用程序相关联,允许应用在不披露用户登录信息的情况下访问数据。
- 个人访问令牌
- PAT 是用户个人,不绑定到特定应用程序。它们由用户直接创建,以供他们使用。
访问令牌的默认过期时间从 1000 年更新至 1 年。此更改可确保频繁的令牌轮转,以增强凭证安全性。
控制器 2.4 及之前版本平台网关中的访问令牌在 1000 年内有效。在 2.5.20250604 补丁版本之前创建的任何现有令牌都将保留 1000 年过期。
您可以通过修改 settings.py 文件中的过期时间来自定义此设置来满足您的特定要求,如下所示:
OAUTH2_PROVIDER__ACCESS_TOKEN_EXPIRE_SECONDS = 31536000
OAUTH2_PROVIDER__ACCESS_TOKEN_EXPIRE_SECONDS = 31536000
有关 settings.py 文件以及如何用来配置平台方面的更多信息,请参阅操作 Ansible Automation Platform 中的 settings.py。
有关 OAuth2 规格的更多信息,请参阅 OAuth 2.0 授权框架。
有关使用 manage 实用程序创建令牌的更多信息,请参阅 令牌和会话管理。
3.1. 应用程序 复制链接链接已复制到粘贴板!
为外部应用(如 ServiceNow 和 Jenkins)创建和配置基于令牌的身份验证。通过基于令牌的身份验证,外部应用程序可以轻松地与 Ansible Automation Platform 集成。
2.4 到 2.5 的迁移不支持平台 UI 上的自动化控制器 OAuth 应用程序。如需更多信息 ,请参阅本知识库文章。
作为平台管理员,您可以在平台中配置自定义外部应用程序 URL,从而提供与外部服务的无缝集成。此功能目前作为技术预览提供。配置后,外部应用程序 URL 会显示在平台 UI 导航面板中,为用户提供轻松访问应用程序。此功能通过确保从平台 UI 中快速访问外部服务来简化工作流。
技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
使用 OAuth 2,您可以使用令牌与应用程序共享数据,而无需公开登录信息。您可以将这些令牌配置为只读。
您可以创建一个代表您要与之集成的外部应用程序的应用程序,然后使用它为应用程序创建令牌,以代表其用户使用。
将这些令牌与应用程序资源关联,您可以管理为特定应用程序发布的所有令牌。通过在 OAuth Applications 下分离令牌问题,您可以根据应用程序撤销所有令牌,而无需撤销系统中的所有令牌。
3.1.1. OAuth 应用入门 复制链接链接已复制到粘贴板!
您可以通过选择 ,从导航面板中访问 页面。您可以在那里查看、创建、排序和搜索当前由 Ansible Automation Platform 和自动化控制器管理的应用程序。
如果不存在应用程序,您可以通过单击 来创建一个。
应用的访问规则如下:
- 平台管理员可以查看和操作系统中的所有应用程序。
- 平台审核员只能查看系统中的应用程序。
- 另一方面,令牌是用于验证传入请求并屏蔽底层用户权限的资源。
令牌的访问规则如下:
- 用户可以为自己创建个人访问令牌。
- 平台管理员可以查看和操作系统中的每个令牌。
- 平台审核员只能查看系统中的令牌。
- 其他普通用户只能查看和操作自己的令牌。
用户只能在创建时查看令牌或刷新令牌值。
3.1.1.1. 应用程序功能 复制链接链接已复制到粘贴板!
有几个 OAuth 2 实用程序可用于授权、令牌刷新和撤销。您可以在创建应用程序时指定以下授权类型:
- 密码
- 此授权类型非常适合拥有对 Web 应用的原生访问权限,当客户端是资源所有者时必须使用。
- 授权代码
- 当访问令牌必须直接签发给外部应用或服务时,应使用此授权类型。
在使用应用程序时,您只能使用授权代码类型来获取访问令牌。当将外部 Web 应用程序与 Ansible Automation Platform 集成时,该 web 应用程序可能需要为该应用程序中的用户创建 OAuth2 令牌。使用授权代码授权类型在平台中创建应用程序是执行此操作的首选方法,因为:
- 这允许外部应用程序使用用户的凭证从 Ansible Automation Platform 获取令牌。
- 为特定应用程序发布的令牌部分化使这些令牌能够轻松管理。例如,撤销与该应用程序 关联的所有 令牌,而无需撤销系统中的所有令牌。
3.1.1.1.1. 过期后请求访问令牌 复制链接链接已复制到粘贴板!
访问令牌的默认过期时间为 1 年。
使用授权代码授权类型设置应用程序集成的最佳方法是允许这些跨站点请求的源。 通常,您必须列出您要与平台集成的服务或应用程序,以便提供访问令牌。
要做到这一点,您的管理员将允许列表添加到其本地 Ansible Automation Platform 设置文件中:
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOWED_ORIGIN_REGEXES = [
r"http://django-oauth-toolkit.herokuapp.com*",
r"http://www.example.com*"
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOWED_ORIGIN_REGEXES = [
r"http://django-oauth-toolkit.herokuapp.com*",
r"http://www.example.com*"
]
其中 http://django-oauth-toolkit.herokuapp.com 和 http://www.example.com 是需要令牌才能访问平台的应用程序。
3.1.2. 创建新应用程序 复制链接链接已复制到粘贴板!
当将外部 Web 应用程序与 Ansible Automation Platform 集成时,Web 应用程序可能需要代表 web 应用程序的用户创建 OAuth2 令牌。
使用 Authorization Code 授权类型创建应用程序是这样做的首选方法:
- 外部应用程序可以使用用户的凭证获取令牌。
- 为特定应用程序发布的令牌部分化,可以轻松地管理这些令牌。例如,撤销与该应用程序关联的所有令牌。
流程
- 在导航面板中,选择 → 。
- 单击 。Create Application 页面将打开。
输入以下详情:
- Name
- (必需)输入您要创建的应用程序的名称。
- URL
- (可选)输入外部应用程序的 URL。此链接添加到导航面板中以便轻松访问。此设置目前仅作为技术预览提供。
- 描述
- (可选)包含应用程序的简短描述。
- 机构(Organization)
- (必需)选择一个与这个应用程序关联的机构。
- 授权授权类型
- (必需)选择用于用户获取此应用程序的令牌的授权类型之一。如需更多信息,请参阅应用程序功能 以了解有关授权类型的更多信息。
- 客户端类型
- (必需)选择客户端设备的安全性级别。
- 重定向 URIS
- 提供允许的 URI 列表,用空格分开。如果您将授权类型指定为授权代码,则需要此项。
点 ,或者点击 以取消您的更改。
客户端 ID 和客户端 Secret 显示在窗口中。这将是唯一显示客户端机密的时间。
注意只有在 Client type 设为 机密 时,才会创建 Client Secret。
- 点复制图标并保存客户端 ID 和客户端 secret,将外部应用程序与 Ansible Automation Platform 集成。
3.2. 添加令牌 复制链接链接已复制到粘贴板!
您可以通过在 OAuth Applications 详情页面中选择 Tokens 选项卡来查看具有令牌来访问应用的用户列表。
您只能为您自己的用户创建 OAuth 2 Tokens,这意味着您只能从您自己的用户配置集配置或查看令牌。
配置身份验证令牌后,您可以选择与令牌关联的应用,以及令牌具有的访问级别。
流程
- 在导航面板中,选择 → 。
- 选择用户配置集的用户名来配置 OAuth 2 令牌。
选择 Tokens 选项卡。
当没有令牌时,Tokens 屏幕会提示您添加它们。
- 点 打开 Create Token 窗口。
输入以下详情:
- Application
输入您要将令牌与之关联的应用程序的名称。或者,您可以通过单击 进行搜索。这会打开一个单独的窗口,供您从可用选项中选择。如果列表太长,请从过滤器列表中选择 Name 以根据名称过滤。
注意要创建没有链接到任何应用程序的个人访问令牌(PAT),请将 Application 字段留空。
- 描述
- (可选)为您的令牌提供简短描述。
- 影响范围
(必需)指定此令牌具有的访问级别。OAuth 2 令牌的范围可以设置为以下之一:
- Write: 允许使用这个令牌发送的请求在系统中添加、编辑和删除资源。
- 读: 限制操作为只读。请注意,写入范围包含读取范围。
点 ,或者点击 以取消您的更改。
Token 信息显示 Token 和 Refresh Token 信息,以及令牌的到期日期。这将是唯一显示令牌和刷新令牌的时间。您可以从列表视图查看令牌关联和令牌信息。
- 点复制图标并保存令牌和刷新令牌供以后使用。
验证
您可以使用 Applications 详情页面中的 Tokens 选项卡验证应用程序现在显示具有适当令牌的用户。
- 在导航面板中,选择 → 。
- 从 Applications 列表视图中选择您要验证的应用程序。
选择 Tokens 选项卡。
您的令牌应显示在与您选择的应用程序关联的令牌列表中。
其他资源
3.2.1. 应用程序令牌功能 复制链接链接已复制到粘贴板!
对于 /o/ 端点中的令牌,刷新和撤销 与令牌关联的刷新和撤销功能目前只能使用应用令牌执行。
3.2.1.1. 刷新现有访问令牌 复制链接链接已复制到粘贴板!
以下示例显示了提供有刷新令牌的现有访问令牌:
/o/token/ 端点用于刷新访问令牌:
curl -X POST \
-d "grant_type=refresh_token&refresh_token=AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/token/ -i
curl -X POST \
-d "grant_type=refresh_token&refresh_token=AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/token/ -i
其中 refresh_token 由上述访问令牌的 refresh_token 字段提供。
身份验证信息的格式是 < client_id>:<client_secret >,其中 client_id 和 client_secret 是访问令牌底层相关应用程序的对应字段。
特殊 OAuth 2 端点只支持使用 x-www-form-urlencoded Content-type,因此 /o passphrase 端点都不接受 application/json。
成功时,会以 JSON 格式显示一个响应,其中包含新的(刷新的)访问令牌,其范围信息与前面的信息相同:
refresh 操作通过删除原始令牌替换现有令牌,然后立即创建新令牌,其范围和相关应用程序与原始令牌相同。
验证新令牌是否存在,并在 api/gateway/v1/tokens/ 端点中删除旧令牌。
3.2.1.2. 撤销访问令牌 复制链接链接已复制到粘贴板!
您可以通过在平台 UI 中删除令牌或使用 /o/revoke-token/ 端点来撤销访问令牌。
通过此方法撤销访问令牌与删除令牌资源对象相同,但它允许您通过提供令牌值以及关联的 client_id (如果应用是 confidential)来删除令牌。例如:
curl -X POST -d "token=rQONsve372fQwuc2pn76k3IHDCYpi7" \ -u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \ http://<gateway>/o/revoke_token/ -i
curl -X POST -d "token=rQONsve372fQwuc2pn76k3IHDCYpi7" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/revoke_token/ -i
-
特殊 OAuth 2 端点只支持使用
x-www-form-urlencodedContent-type,因此/opassphrase 端点都不接受application/json。 -
Allow External Users to Create Oauth2 Tokens (
ALLOW_OAUTH2_FOR_EXTERNAL_USERSin the API)设置被默认禁用。外部用户引用通过 LDAP 等服务或任何其他 SSO 服务等服务向外部进行身份验证的用户。此设置可确保外部用户无法创建自己的令牌。如果您启用然后禁用它,则同时由外部用户创建的令牌仍会存在,且不会自动撤销。此设置可以通过 → 菜单进行配置。
或者,要撤销 OAuth2 令牌,您可以使用 manage 实用程序,请参阅 撤销 oauth2 令牌。
成功后,会显示响应 200 OK。通过检查 api/gateway/v1/tokens/ 端点中是否存在令牌来验证删除。
3.2.2. 令牌和会话管理 复制链接链接已复制到粘贴板!
Ansible Automation Platform 支持以下 OAuth2 令牌管理命令:
3.2.2.1. create_oauth2_token 复制链接链接已复制到粘贴板!
使用以下命令来创建 OAuth2 令牌(指定 example_user的用户名):
aap-gateway-manage create_oauth2_token --user example_user New OAuth2 token for example_user: j89ia8OO79te6IAZ97L7E8bMgXCON2
$ aap-gateway-manage create_oauth2_token --user example_user
New OAuth2 token for example_user: j89ia8OO79te6IAZ97L7E8bMgXCON2
确保您在创建令牌时提供有效的用户。否则,会显示在没有指定用户的情况下尝试发出命令的错误消息,或者提供不存在的用户名。
3.2.2.2. revoke_oauth2_tokens 复制链接链接已复制到粘贴板!
使用此命令撤销 OAuth2 令牌,包括应用程序令牌和个人访问令牌(PAT)。它撤销所有应用令牌(但不关联刷新令牌),并撤销所有个人访问令牌。但是,您还可以指定用于撤销所有令牌的用户。
使用以下命令撤销所有现有 OAuth2 令牌:
aap-gateway-manage revoke_oauth2_tokens
$ aap-gateway-manage revoke_oauth2_tokens
使用以下命令撤销所有 OAuth2 令牌及其刷新令牌:
aap-gateway-manage revoke_oauth2_tokens --revoke_refresh
$ aap-gateway-manage revoke_oauth2_tokens --revoke_refresh
使用 id=example_user (指定 example_user的用户名)为用户撤销所有 OAuth2 令牌:
aap-gateway-manage revoke_oauth2_tokens --user example_user
$ aap-gateway-manage revoke_oauth2_tokens --user example_user
为具有 id=example_user 的用户撤销所有 OAuth2 令牌和刷新令牌:
aap-gateway-manage revoke_oauth2_tokens --user example_user --revoke_refresh
$ aap-gateway-manage revoke_oauth2_tokens --user example_user --revoke_refresh
3.2.2.3. cleartokens 复制链接链接已复制到粘贴板!
使用此命令清除已撤销的令牌。
如需更多信息,请参阅 Django 的 Oauth Toolkit 文档中的 cleartokens。
3.2.2.4. clearsessions 复制链接链接已复制到粘贴板!
使用此命令删除所有已过期的会话。
如需更多信息,请参阅 Django 的 Oauth Toolkit 文档中的 清除会话存储。
有关在 UI 中有关 OAuth2 令牌管理的更多信息,请参阅 应用。
3.3. 管理外部用户的 OAuth2 令牌创建 复制链接链接已复制到粘贴板!
Red Hat Ansible Automation Platform 设计了一个默认安全功能,它可防止通过外部供应商(如 LDAP、SAML 或 SSO)进行身份验证的用户创建用于编程 API 访问的 OAuth2 令牌。当外部用户尝试生成此类令牌时,会出现以下消息: 403: Forbidden' error with the message: '(access_denied) OAuth2 Tokens 不能由与外部身份验证提供程序关联的用户创建。
这个默认行为是临时的安全措施。Ansible Automation Platform 优先选择对令牌生成进行集中式控制,从而鼓励管理员选择适当的方法为外部身份验证提供程序启用 OAuth 2.0 用户令牌生成。
务必要了解在 Ansible Automation Platform 中创建 OAuth2 令牌,Ansible Automation Platform 本身会管理其生命周期,包括其过期时间。这个生命周期独立于用户与外部身份提供程序(IdP)的会话。例如,如果用户生成 Ansible Automation Platform 令牌,并且以后在外部 IdP 中禁用其帐户,Ansible Automation Platform 令牌将保持有效,直到它过期或被手动撤销。了解这种交互对于安全配置至关重要,因为如果为外部用户启用令牌创建,它突出显示了补充控制的需要。
3.3.1. 为外部用户启用 OAuth2 令牌创建 复制链接链接已复制到粘贴板!
要启用外部用户创建 OAuth2 令牌,请更改 Ansible Automation Platform 环境中的适当设置。在启用此设置后,确保实施补救安全控制。
流程
- 在导航面板中,进入 → 。
- 点 settings。
- 将 Allow external users to create OAuth2 tokens setting to Enabled。
- 点 。
后续步骤
实施推荐的安全控制,如 为外部用户 OAuth2 令牌实施安全控制 中所述。
3.3.2. 为外部用户 OAuth2 令牌实施安全控制 复制链接链接已复制到粘贴板!
为外部用户启用 OAuth2 令牌创建后,实施以下补偿控制以保持强大的安全状态。
流程
限制令牌生命周期 :为 OAuth2 令牌配置较短的持续时间,以减少暴露窗口。
-
在 Ansible Automation Platform 设置中,调整
OAUTH2_ACCESS_TOKEN_EXPIRE_SECONDS 值。建议值为 28800 (8 小时),将令牌的有效性限制为标准工作日。
-
在 Ansible Automation Platform 设置中,调整
强制严格的基于角色的访问控制(RBAC) :授予用户最小必要权限。
- 将创建令牌的用户分配给具有高度限制角色的 团队。避免授予可导致特权升级的广泛权限。
- 建立清晰的加入流程 :将令牌吊销集成到您的机构加入流程中。您的 HR 和 IT 加入流程必须包含 Ansible Automation Platform 管理员的一个步骤,以撤销所有有效的令牌。令牌可以在 Tokens 选项卡下手动撤销用户的配置文件。
- 审计和监控 :定期查看 活动流 中的与令牌相关的活动。
第 4 章 使用基于角色的访问控制管理访问权限 复制链接链接已复制到粘贴板!
基于角色的访问控制(RBAC)根据用户在 Ansible Automation Platform 中分配的机构中的角色限制用户访问。RBAC 中的角色指的是用户对 Ansible Automation Platform 组件和资源的访问权限级别。
您可以根据 RBAC 策略,控制用户可以在广泛或粒度级别使用 Ansible Automation Platform 组件的功能。您可以指定用户是否为系统管理员还是普通用户,并将角色和访问权限与机构中的位置保持一致。
角色可以使用多个权限定义,然后分配给资源、团队和用户。组成角色的权限决定了分配的角色允许什么。仅分配权限,仅为用户分配所需的访问权限来执行适合其角色的任务。
4.1. 机构 复制链接链接已复制到粘贴板!
机构是用户、团队和资源的逻辑集合。它是 Ansible Automation Platform 对象层次结构中的最高级别对象。创建机构后,Ansible Automation Platform 会显示机构详情。然后,您可以管理组织的访问和执行环境。Ansible Automation Platform 会自动创建一个默认机构,系统管理员会自动分配给这个机构。如果您有自助支持级别许可证,则只有默认机构可用,且不得将其删除。
4.1.1. 机构列表视图 复制链接链接已复制到粘贴板!
机构 页面显示您的安装的现有机构。在这里,您可以搜索特定的机构,过滤机构列表,或更改列表的排序顺序。
流程
- 在导航面板中,选择 → 。
- 在搜索栏中,为您要搜索的机构输入适当的关键字,然后单击箭头图标。
- 在菜单栏中,您可以使用 Name 的箭头来对机构列表进行排序。
- 您还可以通过从 排序 列表中选择 Name、Created 或 Last modified 对列表进行排序。
- 您可以点 Organizations 页面中的 机构名称 来查看机构详情。
4.1.2. 创建机构 复制链接链接已复制到粘贴板!
Ansible Automation Platform 会自动创建一个默认机构。如果您有自助支持级别许可证,则只有默认机构可用且无法删除它。
流程
- 在导航面板中,选择 → 。
- 单击 。
输入 Name,并选择性地为您的机构提供 描述。
注意如果在平台上启用了自动化控制器,请继续第 4 步。否则,继续执行第 6 步。
- 选择 Execution 环境 的名称,或搜索存在此团队成员可以运行自动化的环境的名称。
- 输入要 在其上运行此 机构的实例组的名称。
- 可选:输入 Galaxy 凭证 或从现有凭证列表中搜索。
选择此机构的 Max hosts。默认值为 0。当这个值为 0 时,它表示没有限制。如果您试图将主机添加到已达到或超过其在主机上上限的机构中,则会显示错误消息:
You have already reached the maximum number of 1 hosts allowed for your organization. Contact your System Administrator for assistance.
You have already reached the maximum number of 1 hosts allowed for your organization. Contact your System Administrator for assistance.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点击 。
如果您选择了超过 1 个实例组,您可以通过将实例组拖放到列表中或缩减来管理顺序,然后点 。
注意执行优先级由实例组列出的顺序决定。
- 点 并验证机构设置。
- 单击 。
4.1.3. 访问机构 复制链接链接已复制到粘贴板!
您可以从 Organizations 列表视图中选择机构并选择要提供对 用户、管理员 或团队访问权限的关联选项卡来管理对组织的访问。???
4.1.3.1. 将用户添加到机构 复制链接链接已复制到粘贴板!
您可以将一个用户添加到机构,并管理与用户关联的角色,从而为用户提供对机构的访问权限。要将用户添加到机构中,该用户必须已存在。如需更多信息,请参阅 创建用户。要为用户添加角色,该角色必须已经存在。如需更多信息 ,请参阅创建角色。
在将用户添加到机构时,可以使用以下选项卡选择:在升级过程中,当自动化控制器机构中的用户帐户已迁移到 Ansible Automation Platform 2.5 时,Automation Execution 选项卡会根据用户是否添加到机构前是否显示内容。
- Ansible Automation Platform
- 反映在平台级别添加到机构的所有用户。在这个标签页中,您可以将用户添加到机构成员,并选择性地提供特定的机构级别角色。
- 自动化执行
- 反映在升级和迁移前直接添加到自动化控制器机构的用户。在这个标签页中,您只能查看自动化控制器中的现有成员资格,并删除这些成员资格,但不能添加新成员资格。
机构的新用户成员资格必须在平台级别添加。
流程
- 在导航面板中,选择 → 。
- 从 Organizations 列表视图中,选择要向其添加用户的组织。
- 点 Users 选项卡添加用户。
- 选择 Ansible Automation Platform 选项卡,点 为团队添加用户访问权限,或者选择 Automation Execution 选项卡从团队中查看或删除用户访问权限。
- 单击名称旁边的复选框,从列表中选择一个或多个用户,将它们添加为成员。
- 点击 。
选择您要所选用户具有的角色。向下滚动以获得完整的角色列表。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 点 以查看角色设置。
点 将角色应用到所选用户,并将它们添加为成员。Add roles 对话框显示为每个用户分配的更新角色。
注意如果具有关联角色的用户被重新分配给另一个机构,则会保留它们。
- 要从机构中删除特定用户,请从用户旁的 More actions && 列表中选择 Remove user。这会启动一个确认对话框,要求您确认删除。
- 若要管理组织中用户的角色,请单击用户旁边的 HEKETI 图标,再选择 Manage roles。
4.1.3.2. 将管理员添加到机构 复制链接链接已复制到粘贴板!
您可以将管理员添加到机构中,以允许他们管理机构的成员和设置。例如,他们可以在机构中创建新用户和团队,并为该机构中的用户授予权限。要向机构添加管理员,用户必须已经存在。
流程
- 在导航面板中,选择 → 。
- 从 Organizations 列表视图中,选择要向其添加用户、管理员或团队的组织。
- 点 Administrators 选项卡。
- 单击 。
- 单击名称旁边的复选框,为他们分配此机构的管理员角色,以从列表中选择用户。
- 单击 。
要从机构中删除特定的管理员,请从管理员名称旁边的 More actions && 列表中选择 Remove administrator。这会启动一个确认对话框,要求您确认删除。
注意如果用户之前已添加为这个机构的成员,则他们将继续成为这个机构的成员。但是,如果在进行管理员分配时将它们添加到机构中,则会从机构中删除它们。
4.1.3.3. 将团队添加到机构中 复制链接链接已复制到粘贴板!
您可以通过向团队添加角色来为团队团队提供访问权限。要为团队添加角色,团队必须已存在于机构中。如需更多信息,请参阅创建团队。要为团队添加角色,该角色必须已经存在。如需更多信息 ,请参阅创建角色。
流程
- 在导航面板中,选择 → 。
- 从 Organizations 列表视图中,选择要添加团队访问权限的机构。
- 点 Teams 选项卡。如果没有团队存在,点 创建团队并将其添加到这个机构中。
- 点 。
选择您要所选团队具有的角色。向下滚动以获得完整的角色列表。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 点 以查看角色设置。
- 点 将角色应用到所选团队。Add roles 对话框显示为每个团队分配的更新角色。
点 。
注意如果团队被重新分配给另一个机构,则具有关联角色的团队会保留它们。
- 要管理组织中团队的角色,请单击用户旁边的 HEKETI 图标,再选择 Manage roles。
4.1.3.4. 删除机构 复制链接链接已复制到粘贴板!
在删除机构前,您必须是机构管理员或系统管理员。当您删除机构时,机构、团队、用户和资源将从 Ansible Automation Platform 中永久删除。
当您尝试删除由其他资源使用的项目时,会显示一条消息,通知您删除可能会影响其他资源并提示您确认删除。有些屏幕包含无效的或之前已被删除的项目,且无法运行。
流程
- 在导航面板中,选择 → 。
- 点击您要删除的机构旁边的 resources 图标,然后选择 Delete organization。
选择确认复选框,然后点 继续删除。否则,请单击 。
注意您可以通过选择您要删除的每个机构旁边的复选框来删除多个机构,然后从菜单栏中的 More actions && 列表中选择 Delete selected organizations。
4.1.4. 使用通知程序 复制链接链接已复制到粘贴板!
当平台上启用了自动化控制器时,您可以查看您已设置并管理其机构中设置的任何通知程序集成。
流程
- 在导航面板中,选择 → 。
- 从 Organizations 列表视图中,选择要管理通知的组织。
- 选择 Notification 选项卡。
- 使用切换按钮启用或禁用要与特定机构搭配使用的通知。如需更多信息,请参阅 启用和禁用通知。
- 如果没有设置通知程序,请从导航面板中选择 → → 。
其他资源
4.1.5. 使用执行环境 复制链接链接已复制到粘贴板!
当平台上启用了自动化控制器时,您可以查看您已设置并管理其在机构资源内设置的任何执行环境。
有关执行环境的更多信息,请参阅使用自动化执行环境指南中的 执行环境。https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_execution/assembly-controller-execution-environments
流程
- 在导航面板中,选择 → 。
- 从 Organizations 列表视图中,选择您要管理的执行环境的组织。
- 选择 Execution Environments 选项卡。
- 如果没有可用的执行环境,点 创建一个。或者,您可以通过选择 → → 从导航面板中创建执行环境。
单击 。
注意创建新的执行环境后,返回到 → ,再选择您在其中创建执行环境的组织来更新该选项卡上的列表。
- 选择要与特定机构搭配使用的执行环境。
4.2. 团队 复制链接链接已复制到粘贴板!
团队是机构的一个子部门,它包括了关联的用户和资源。团队提供了一种方式来实现基于角色的访问控制方案,并跨机构委派职责。例如,您可以为团队授予权限,而不是团队中的每个用户。
您可以根据您的机构需要创建任意数量的团队。团队只能分配给一个机构,而一个机构可以由多个团队组成。可以为每个团队分配角色,这与为用户分配角色的方式相同。团队也可以大规模地为凭证分配所有权,从而防止多个接口为同一用户分配相同的凭证。
4.2.1. 团队列表视图 复制链接链接已复制到粘贴板!
Teams 页面显示您的安装的现有团队。在这里,您可以搜索特定团队,按团队名称或机构过滤团队列表,或更改列表的排序顺序。
流程
- 在导航面板中,选择 → 。
- 在搜索栏中,为您要搜索的团队输入适当的关键字,然后单击箭头图标。
- 在菜单栏中,您可以使用 Name 和 Organization 箭头来对团队列表进行排序。
- 您可以点 Teams 页面中的团队 名称来查看 团队详情。
- 您可以点 Organization 列中的链接来查看机构详情。
4.2.2. 创建团队 复制链接链接已复制到粘贴板!
您可以创建新团队,为团队分配一个机构,并管理与每个团队关联的用户和管理员。与团队关联的用户会继承与团队关联的权限以及团队成员资格的任何机构权限。
要为团队添加用户或管理员,该用户必须已创建。
流程
- 在导航面板中,选择 → 。
- 点 。
- 输入 Name,并选择性地为团队提供一个 Description。
选择要与这个团队关联的机构。
注意每个团队只能分配给一个机构。
点 。
Details 页面将打开,您可以在其中查看和编辑团队信息。
4.2.3. 将用户添加到团队 复制链接链接已复制到粘贴板!
要将用户添加到团队中,用户必须已经创建。如需更多信息,请参阅 创建用户。向团队添加用户仅将他们添加为成员。使用 Roles 选项卡为所选团队分配不同资源的角色。
在向团队添加用户时,可以使用以下选项卡选择。在升级过程中,当自动化控制器或自动化中心机构中的用户帐户已迁移到 Ansible Automation Platform 2.5 时,Automation Execution 和 Automation Content 选项卡会根据用户迁移前是否添加到这些机构中显示内容。
- Ansible Automation Platform
- 反映在平台级别添加到机构的所有用户。在这个标签页中,您可以将用户添加到机构成员,并选择性地提供特定的机构级别角色。
- 自动化执行
- 反映在升级和迁移前直接添加到自动化控制器机构的用户。在这个标签页中,您只能查看自动化控制器中的现有成员资格,并删除这些成员资格,但不能添加新成员资格。必须通过平台添加新机构成员资格。
- 自动化内容
- 反映在升级和迁移前直接添加到自动化中心机构的用户。在这个标签页中,您只能查看自动化中心中的现有成员资格并删除这些成员资格,但不能添加新成员资格。
团队新用户成员资格必须在平台级别添加。
流程
- 在导航面板中,选择 → 。
- 选择您要将用户添加到的团队。
- 选择 Users 选项卡。
- 选择 Ansible Automation Platform 选项卡,点 为团队添加用户访问权限,或者选择 Automation Execution 或 Automation Content 选项卡来查看或删除团队中的用户访问。
- 点击名称旁边的复选框从列表中选择一个或多个用户,将它们添加为此团队的成员。
- 单击 。
4.2.4. 从团队中删除用户 复制链接链接已复制到粘贴板!
您可以从团队列表视图中删除用户。
流程
- 在导航面板中,选择 → 。
- 选择您要删除用户的团队。
- 选择 Users 选项卡。
- 点您要作为团队成员删除的用户旁边的 Remove user 图标。
您可以通过选择您要删除的每个用户旁边的复选框来删除多个用户,然后从 More actions && 列表中选择 Remove selected users。
注意如果用户是团队管理员,您可以从 Administrators 选项卡中向团队中删除其成员资格。
这会启动一个确认对话框,要求您确认删除。
4.2.5. 将管理员添加到团队 复制链接链接已复制到粘贴板!
您可以将管理员添加到团队中,以允许他们管理该团队的成员和设置。例如,他们可以创建新用户,并为团队中的用户授予权限。要向团队添加管理员,管理员必须已经创建。如需更多信息,请参阅 创建用户。
流程
- 在导航面板中,选择 → 。
- 选择您要添加管理员的团队。
- 选择 Administrators 选项卡,再单击 。
- 点名称旁边的复选框从列表中选择一个或多个用户,将它们添加为此团队的管理员。
- 单击 。
4.2.6. 在团队中添加角色 复制链接链接已复制到粘贴板!
您可以为团队分配权限,如编辑和管理资源和其他元素。您可以通过清单、项目、作业模板和其他资源,或者在 Organizations 视图中设置权限。
无法通过添加角色将团队分配给机构。具体步骤请参阅 Adding a team to a organization to a organization 部分。
流程
- 在导航面板中,选择 → 。
- 选择您要添加 角色的团队名称。
选择 Roles 选项卡,再单击 。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 选择 资源类型 。
- 选择要接收新角色的资源,然后单击 。
- 选择要应用到资源的角色,然后点 。
检查设置并点 。
Add roles 对话框显示角色分配是否已成功应用,单击 以关闭对话框。
4.2.7. 从团队中删除角色 复制链接链接已复制到粘贴板!
您可以通过选择资源旁边的 - 图标从团队中删除角色。这会启动一个确认对话框,要求您确认删除。
流程
- 在导航面板中,选择 → 。
- 选择您要从中删除角色的团队 名称。
选择 Roles 选项卡。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 选中您要删除的每个资源旁边的复选框,然后从菜单栏中的 && 列表中选择 Remove selected roles。
- 选中该复选框以确认移除所选角色,然后单击 删除角色。
4.2.8. 删除团队 复制链接链接已复制到粘贴板!
在删除团队前,必须具有团队权限。当您删除团队时,从该团队获得继承的权限成员将被撤销。
流程
- 在导航面板中,选择 → 。
- 选中您要删除的团队的复选框。
选择 alsa 图标并选择 Delete team。
注意您可以通过选择您要删除的每个团队旁边的复选框来删除多个团队,然后从 More actions WWN 列表中选择 Delete teams。
4.3. 用户 复制链接链接已复制到粘贴板!
与机构关联的用户会在机构的 Users 选项卡中显示。
您可以将其他用户添加到机构中,包括普通用户或系统管理员,但首先,您必须创建它们。
Ansible Automation Platform 会自动创建一个默认的 admin 用户,以便它们可以登录并为其机构设置 Ansible Automation Platform。无法删除或修改此用户。
您可以根据 用户名、名字、姓氏或电子邮件 对用户列表进行排序 或搜索。 点标头中的箭头切换排序首选项。您可以在 Users 页面中查看用户名旁边的 User 类型和 Email。
4.3.1. 用户列表视图 复制链接链接已复制到粘贴板!
Users 页面显示您安装的现有用户。在这里,您可以搜索特定用户,过滤用户列表,或更改列表的排序顺序。
在升级过程中将用户帐户迁移到 Ansible Automation Platform 2.5 时,这些帐户也会在 Users 列表视图中显示。以前,指定为自动化控制器或自动化中心管理员的用户在 User type 列中被标记为 Normal。您可以通过编辑帐户来查看这些用户是否具有管理员特权。具体步骤请参阅 编辑用户。
流程
- 在导航面板中,选择 → 。
- 在搜索栏中,为您要搜索的用户输入适当的关键字,然后单击箭头图标。
- 从菜单栏中,您可以使用 用户名, Email, First name, Last name 或 Last login 以切换您的排序首选项来对用户列表进行排序。
- 您可以通过从 Users 列表视图中选择 Username 来查看用户详情。
4.3.2. 创建用户 复制链接链接已复制到粘贴板!
Ansible Automation Platform 中有三种类型的用户:
- 普通用户
- 普通用户具有读写访问权限,仅限于该用户获得了适当角色和权限的资源(如清单、项目和作业模板)。当未指定其他用户类型时,普通用户是默认的用户类型。
- Ansible Automation Platform 管理员
- 管理员(也称为超级用户)具有完整的系统管理特权,对整个安装具有完全的读写权限。管理员通常负责管理所有方面,并将日常工作的职责委派给不同的用户。
- Ansible Automation Platform Auditor
- 审核员对环境中所有对象具有只读权限。
流程
- 在导航面板中,选择 → 。
- 点 。
- 在 Create user 页面的字段中,输入新用户的详情。带星号 rolebinding 标记的字段是必需的。
如果没有指定 User type,则普通用户是默认设置。要将用户定义为管理员或审核员,请选择 User type 复选框。
注意如果您要修改您自己的密码,请退出并重新登录以便其生效。
- 选择要分配给此用户的 机构。有关创建新机构的详情,请参考 创建机构。
- 点 。
后续步骤
成功创建用户后,用户 对话框将打开。您可以在这里查看并更改用户的团队、角色、令牌和其他成员资格详情。
如果没有新创建的用户,详细信息屏幕会显示该用户的最后登录活动。
如果您以自己的身份登录并查看用户配置集的详情,您可以通过选择 Tokens 选项卡来管理令牌,请参阅 添加令牌。
4.3.3. 编辑用户 复制链接链接已复制到粘贴板!
您可以在创建用户帐户后修改用户帐户的属性。
升级时,可能已存在来自自动化控制器或自动化中心服务的用户帐户。在编辑这些用户帐户时,用户类型 复选框指示帐户是否有以下服务级别管理员权限之一:
- 自动化执行环境管理员
- 之前定义的自动化控制器管理员仅对自动化执行资源具有完全读写权限。
- Automation Decisions 管理员
- 之前定义的 Event-Driven Ansible 管理员仅对自动化决策资源具有完全读写权限。
- 自动化内容管理员
- 之前定义的自动化 hub 管理员仅对自动化内容资源具有完全读写权限。
平台管理员可以为各个服务撤销或分配管理员权限,并将用户指定为 Ansible Automation Platform Administrator、Ansible Automation Platform 审核员 或普通用户。为所有各个服务分配管理员特权会自动指定为 Ansible Automation Platform 管理员。有关用户类型的更多信息,请参阅 创建用户。
要查看用户是否有服务级别审核员权限,您必须引用 API。
以前,指定为自动化控制器或自动化中心管理员的用户在 Users list 视图中的 User type 列中被标记为 Normal。您可以在 Edit Users 页面中查看这些用户是否有管理员特权。
流程
- 在导航面板中,选择 → 。
- 选中要修改的用户的复选框。
- 单击 Pencil 图标,再选择 Edit user。
此时会显示 Edit user 页面,您可以在其中修改用户详细信息,如密码、电子邮件、用户类型 ,以及 组织。
注意如果在升级过程中将用户帐户迁移到 Ansible Automation Platform 2.5,并且具有单个服务的管理员特权,则额外的用户类型复选框将可用。您可以使用这些复选框来撤销或添加单个权限,或者将用户指定为平台管理员、系统审核员或普通用户。
- 完成更改后,单击 Save user。
4.3.4. 删除用户 复制链接链接已复制到粘贴板!
在删除用户之前,您必须具有普通用户或系统管理员权限。当您删除用户帐户时,用户的名称和电子邮件将从 Ansible Automation Platform 中永久删除。
流程
- 在导航面板中,选择 → 。
- 选中您要删除的用户的复选框。
点击您要删除的用户旁边的 WWN 图标,然后选择 Delete user。
注意您可以通过选择您要删除的每个用户旁边的复选框来删除多个用户,然后从 More actions WWN 列表中选择 Delete users。
4.3.5. 为用户添加角色 复制链接链接已复制到粘贴板!
您可以通过将角色分配给他们来授予用户使用、读取或写入凭证的访问权限。
无法通过添加角色将用户分配给机构。具体步骤请参阅 将用户添加到机构 中提供的步骤。
流程
- 在导航面板中,选择 → 。
- 在 Users 列表视图中,点您要添加角色的用户。
- 选择 Roles 选项卡,以显示分配给此用户的角色集合。它们提供了读取、修改和管理资源的能力。
若要添加新角色,可单击 。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 选择资源类型 。
- 选择将接收新角色的资源,。
- 选择要应用到资源的角色,然后单击 。
检查设置并点 。
Add roles 对话框显示角色分配是否已成功应用。点 关闭对话框。
4.3.6. 从用户中删除角色 复制链接链接已复制到粘贴板!
您可以通过选择资源旁边的图标来从用户中删除角色。 这会启动一个确认对话框,要求您确认删除。
流程
- 在导航面板中,选择 → 。
- 选择您要从中删除角色的用户名。
选择 Roles 选项卡。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 选中您要删除的每个资源旁边的复选框,然后从菜单栏中的 More actions && 列表中选择 Remove selected roles。
- 选中该复选框以确认移除所选角色,然后单击 。
4.4. Resources 复制链接链接已复制到粘贴板!
您可以管理用户对 Ansible Automation Platform 资源的访问权限,以及用户可以使用这些资源做什么。用户通过为其分配的角色或通过角色层次结构继承的角色授予访问权限,例如,他们从团队成员资格继承的角色。Ansible Automation Platform 资源因您要配置的功能而异。例如,资源可以是用于自动化执行环境或决策环境的作业模板和项目,以及自动化决策的规则激活。
4.4.1. 提供对资源的团队访问 复制链接链接已复制到粘贴板!
您可以根据其团队成员资格来授予用户访问权限。当您将用户添加为团队的成员时,他们会继承对该团队定义的角色和资源的访问权限。
无法向 → 资源授予直接团队访问权限。
流程
- 在导航面板中,选择要提供团队访问的资源。例如, → 。
- 选择 Team Access 选项卡。
- 点 。
- 点团队旁边的复选框将该团队分配给您选择的资源类型,然后点 。
- 选择您要应用到所选资源团队的角色,然后点 。
- 检查设置并点 。Add roles 对话框显示角色分配是否已成功应用。
- 您可以选择团队旁边的 Remove role 图标来删除团队的资源访问。这会启动一个确认对话框,要求您确认删除。
4.4.2. 为用户提供对资源的访问权限 复制链接链接已复制到粘贴板!
您可以通过为其分配的角色授予用户对资源的访问权限。
无法向 → 资源授予直接用户访问。
流程
- 在导航面板中,选择要提供团队访问的资源。例如, → 。
- 选择 User access 选项卡。
- 点 。
- 单击用户旁边的复选框,将该用户分配给您选择的资源类型,。
- 选择您要应用到所选资源的用户的角色,然后点 。
- 检查设置并点 。Add roles 对话框显示角色分配是否已成功应用。
- 您可以通过选择用户旁边的 Remove role 图标来删除用户的资源访问。这会启动一个确认对话框,要求您确认删除。
第 5 章 角色 复制链接链接已复制到粘贴板!
角色是 Red Hat Ansible Automation Platform 中的机构单元。当您为团队或用户分配角色时,您被授予使用、读取或写入凭证的访问权限。由于与角色关联的文件结构,角色成为可重新分发的单元,以便您在资源或其他用户之间共享行为。授予使用、读取或写入凭证的所有访问权限都通过角色处理,并且为资源定义角色。
5.1. 显示角色 复制链接链接已复制到粘贴板!
您可以从 菜单显示为组件资源分配的角色。
流程
- 在导航面板中,选择 → 。
为您要为其创建自定义角色的组件资源选择一个标签页。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 在表标头中,您可以使用 Name、Description、Created 和 Editable 或在 Sort 列表中排序选择来对角色列表进行排序。
- 您可以通过从过滤器列表中选择 Name 或 Editable 并点击箭头来过滤角色列表。
5.2. 创建角色 复制链接链接已复制到粘贴板!
Ansible Automation Platform 服务提供一组预定义的角色,具有足以满足标准自动化任务的权限。也可以配置自定义角色,并为它们分配一个或多个权限过滤器。权限过滤器定义特定资源类型允许的操作。
流程
- 在导航面板中,选择 → 。
为您要为其创建自定义角色的组件资源选择一个标签页。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 单击 。
- 提供 Name 和 optionally 包括角色的 Description。
- 选择 内容类型。
- 选择您要 分配给此角色的权限。
- 点 创建新角色。
5.3. 编辑角色 复制链接链接已复制到粘贴板!
无法更改内置角色,但您可以从 Roles 列表视图中修改自定义角色。Roles 列表视图中的 Editable 列指示角色是 Built-in 还是 Editable。
流程
- 在导航面板中,选择 → 。
为您要修改自定义角色的组件资源选择一个标签页。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
-
点您想要的角色旁的 Edit role 图标
,并根据需要修改角色设置。
- 点 保存您的更改。
5.4. 删除角色 复制链接链接已复制到粘贴板!
但是,您无法删除内置角色,但您可以从 Roles 列表视图中删除自定义角色。
流程
- 在导航面板中,选择 → 。
为您要为其创建自定义角色的组件资源选择一个标签页。
注意如果安装了多个 Ansible Automation Platform 组件,您将在 Roles 菜单栏中看到与每个组件关联的角色选择。例如,自动化控制器角色的 Automation Execution,Event-Driven Ansible 角色的 Automation Decisions。
- 点击您想要的角色旁边的 More Actions 图标 appear,然后选择 Delete role。
- 要批量删除角色,请从 Roles 列表视图中选择您要删除的角色,点 More Actions 图标 &&,然后选择 Delete roles。
第 6 章 配置 Ansible Automation Platform 复制链接链接已复制到粘贴板!
您可以使用以下选择从 Settings 菜单中配置 Ansible Automation Platform:
- 订阅
- 平台网关
- 用户首选项
- 故障排除
Settings 菜单中可用的其他选择特定于自动化执行。如需更多信息,请参阅配置自动化执行指南。
6.1. 配置订阅 复制链接链接已复制到粘贴板!
您可以使用 Subscription 菜单查看订阅详情,如合规性、主机相关统计信息或过期,或者您可以应用新的订阅。
Ansible 订阅需要来自 console.redhat.com 的服务帐户。您必须创建一个服务帐户, 并使用客户端 ID 和客户端 secret 激活您的订阅。
如果您输入客户端 ID 和客户端 secret,但无法找到订阅,您可能没有在服务帐户上设置正确的权限。有关服务帐户的更多信息和故障排除指南,请参阅配置 Ansible Automation Platform 以通过服务帐户凭证进行身份验证。
对于 Red Hat Satellite,请在以下字段中输入您的 Satellite 用户名和密码。
流程
- 在导航面板中,选择 → 。此时会显示 Subscription 页面。
- 点 。
- 您可以输入您的服务帐户或 Satellite 凭证,或者在 Welcome 页面中附加当前的订阅清单。
- 点 并同意许可证协议的条款。
- 点 查看订阅设置。
- 单击 以完成配置。
6.2. 平台网关 复制链接链接已复制到粘贴板!
平台网关是处理 Ansible Automation Platform 身份验证和授权的服务。它为平台提供了一个入口,并提供平台用户界面。
在 → 菜单中,您可以配置平台 网关、安全、会话、平台安全、自定义登录 和其他设置。
流程
- 在导航面板中,选择 → 。
- 此时会显示 Platform 网关设置页面。
- 要配置选项,请点 。
您可以配置以下平台网关选项:
- 平台网关代理 url :平台网关代理层的 URL。
- 平台网关代理 url 忽略 证书:将证书忽略平台网关代理层。
- 点 以保存更改或继续配置其他可用的平台选项。
6.2.1. 配置平台安全性 复制链接链接已复制到粘贴板!
在 Platform 网关设置页面中,您可以配置平台安全设置。
流程
- 在导航面板中,选择 → 。
- 此时会显示 Platform 网关设置页面。
- 要配置选项,请点击 。
您可以配置以下 安全设置 :
- 允许 admin 设置不安全的 :在编辑任何本地用户帐户时,超级用户帐户都可以保存不安全的密码。
启用网关基本身份验证 :启用平台网关 API 的基本身份验证。
关闭这个关闭可防止所有基本身份验证(本地用户),因此客户需要在这样做前确保正确配置其替代的验证机制。
仅配置了本地身份验证来关闭它也会防止所有对 UI 的访问。
社交身份验证用户名是完整的电子邮件 :启用此设置警报社交身份验证,以将完整电子邮件用作用户名而不是全名。
网关令牌名称 :从代理推送到后端服务的标头名称。
警告如果更改了此名称,则必须更新后端以补偿。
- 网关访问令牌到期 :访问令牌有效的时间。
JWT 私钥 :用于加密发送到后端服务的 JWT 令牌的私钥。
这应该是私有 RSA 密钥,应该在安装时自动生成。
注意在轮转密钥时请小心,因为它将导致当前会话失败,直到重置 JWT 密钥为止。
(只读) Jwt 公钥 :用于加密发送到后端服务的 JWT 令牌的私钥。
这应该是私有 RSA 密钥,应该在安装时自动生成。
注意参阅其他服务的文档,了解它们如何使用此密钥。
- 点 保存更改或继续配置其他可用的平台选项。
6.2.2. 配置平台会话 复制链接链接已复制到粘贴板!
在 Platform 网关设置页面中,您可以配置平台会话设置。
流程
- 在导航面板中,选择 → 。
- 此时会显示 Platform 网关设置页面。
- 要配置选项,请点 。
- 在 Session cookie age 字段中输入会话过期前的时间(以秒为单位)。
- 点 以保存更改或继续配置其他可用的平台选项。
6.2.3. 配置平台密码安全策略 复制链接链接已复制到粘贴板!
在 Platform 网关设置页面中,您可以配置密码安全策略。
流程
- 在导航面板中,选择 → 。
- 此时会显示 Platform 网关设置页面。
- 要配置选项,请点 。
您可以配置以下 密码安全选项 :
- 密码最小大写字母 :需要位于本地密码中的大写字母字符。
- 密码最小长度 :本地密码的最小长度。
- 密码最小数字 数字:需要在本地密码中有多个数字字符。
- 密码最小特殊字符 :本地密码中需要有多少个特殊字符.
- 点 以保存更改或继续配置其他可用的平台选项。
6.2.4. 加密平台网关数据库密码 复制链接链接已复制到粘贴板!
系统管理员可以加密平台网关使用的数据库密码,并将其直接应用到配置文件,从而解决与 SECRET_KEY 加载顺序相关的问题。
平台网关使用 Django 框架,该框架要求 SECRET_KEY 在解密功能(ansible_encryption.decrypt_string ())之前完全加载到内存中。如果在载入密钥前运行解密调用,则进程会失败,阻止平台网关访问数据库。
流程
- 访问平台网关节点上的命令行。
使用
aap-gateway-manage shell_plus命令打开交互式 Django shell:aap-gateway-manage shell_plus
aap-gateway-manage shell_plusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 shell 中,运行以下命令来导入加密库、设置密码并生成加密的字符串:
>>> from ansible_base.lib.utils.encryption import ansible_encryption >>> value = 'your-database-password' # REPLACE with your actual password >>> encrypted_value = ansible_encryption.encrypt_string(value) >>> print(encrypted_value)
>>> from ansible_base.lib.utils.encryption import ansible_encryption >>> value = 'your-database-password' # REPLACE with your actual password >>> encrypted_value = ansible_encryption.encrypt_string(value) >>> print(encrypted_value)Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
复制以
$encrypted$开始的整个输出字符串。这是您的加密密码。 -
使用
quit ()退出 shell。 打开平台网关配置文件进行编辑:
vi /etc/ansible-automation-platform/gateway/settings.py
vi /etc/ansible-automation-platform/gateway/settings.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
找到定义
DATABASES变量的部分。您必须在定义DATABASES字典前插入代码来加载SECRET_KEY。 更新该文件使其包含突出显示的代码,只使用您复制的加密字符串替换
PASSWORD键的占位符文本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存并关闭该文件。
重启平台网关来载入新的加密配置:
sudo systemctl restart aap-gateway
sudo systemctl restart aap-gatewayCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认平台网关在没有错误的情况下启动,并且您可以访问平台 UI,这表示数据库连接成功。
6.2.5. 配置附加平台选项 复制链接链接已复制到粘贴板!
在 Platform 网关设置页面中,您可以配置额外的平台选项。
流程
- 在导航面板中,选择 → 。
- 此时会显示 Platform 网关设置页面。
- 点 。
您可以配置以下 其他设置 :
JWT 到期缓冲区( 以秒为单位):从缓存中撤销 JWT 令牌到期前的秒数。
当身份验证发生时,会为用户创建 JWT 令牌并且该令牌被缓存。当后续调用发生到自动化控制器或 Event-Driven Ansible 等服务时,令牌将从缓存中获取并发送到该服务。令牌和令牌的缓存都具有过期时间。如果令牌在缓存中过期,则身份验证过程尝试会导致 401 错误(未授权)。此设置通过从缓存中删除 JWT 令牌来提供 Red Hat Ansible Automation Platform 缓冲,然后再令牌过期。当令牌从缓存新令牌时,会为用户生成并缓存新令牌。因此,永远不会使用从缓存中过期的令牌。此设置默认为 2 秒。如果您在平台网关和服务之间有较大延迟,并观察 401 响应,您必须增加此设置以降低 401 响应的数量。
- 状态端点后端超时时间: Timeout (以秒为单位)用于在尝试连接到后端时等待状态端点。
- 状态端点后端验证: 指定在调用单个节点进行状态时是否验证了服务的 SSL 证书。
- Request timeout :指定代理报告超时并生成 504 之前的时间长度(以秒为单位)。
- "允许外部用户创建 OAuth2 令牌]:出于安全原因,不允许外部身份验证供应商(如 LDAP、SAML、SSO、Radius 等)的用户创建 OAuth2 令牌。要更改此行为,请启用此设置。当此设置关闭时,现有令牌不会被删除。
- 点 以保存更改或继续配置其他可用的平台选项。
6.3. 用户首选项 复制链接链接已复制到粘贴板!
您可以使用 User preferences 页面自定义平台体验。使用此菜单来控制它们、布局选项和格式化。
用户首选项将存储在您的浏览器中。这意味着它们对您和您的计算机是唯一的。
流程
- 在导航面板中,选择 → 。
- 此时会显示 User Preferences 页面。
- 点 。
您可以配置以下选项:
refresh interval: 为页面选择刷新间隔。
这会以所选间隔刷新页面上的数据。
刷新在后台进行,且不会重新加载页面。
color theme: 从中选择:
- dark theme
- 辅助主题
- 系统默认
表布局 :选择:
- 适应性
- 紧凑
表单列 :选择:
- 输入的多个列
- 输入的单列
从中选择的 日期格式 :
- 显示当前时间的日期
- 将 日期显示为日期和时间
- 首选数据格式 :在编辑和显示数据时设置默认格式。
- 点 。
6.4. 故障排除选项 复制链接链接已复制到粘贴板!
您可以使用 Troubleshooting 页面启用或禁用有助于调试 Ansible Automation Platform 中问题的某些标志。
流程
- 在导航面板中,选择 → → 。
- 此时会显示 Troubleshooting 页面。
- 点 。
您可以选择以下选项:
- 启用或禁用 tmp dir cleanup :选择此项以在作业执行完成后启用或禁用清理在作业执行过程中生成的 tmp 目录。
- 调试 Web 请求 :选择此项来启用或禁用 Web 请求分析以调试较慢的 Web 请求。
- Release Receptor Work :选择此项在作业完成或失败后打开或关闭删除作业 pod。这对于调试作业失败的原因非常有用。
- 在错误上保留 receptor 工作 :选择此选项以防止在检测到错误时释放 receptor 工作。
- 点 保存您的更改。