2.6. 映射
要控制允许哪些用户进入 Ansible Automation Platform 服务器,并根据它们的属性(如用户名和电子邮件地址)或团队,或者他们所属的组,可以配置验证器映射。
使用验证器映射添加在授予用户获得或拒绝访问资源类型前必须满足的条件。验证器映射与验证器关联,并给出了顺序。用户登录时,会按顺序处理映射。这类似于防火墙规则或邮件过滤器。
2.6.1. 了解验证器映射 复制链接链接已复制到粘贴板!
- 身份验证
- 验证用户的身份,通常是通过用户名和密码或信任系统。
- 授权
- 确定经过身份验证的用户在通过身份验证后可以执行的操作。
在 Ansible Automation Platform 中,验证器管理身份验证,验证用户并返回详情,如用户名、名字、电子邮件和组成员资格(如 LDAP 组)。授权来自验证器的关联映射。
在身份验证过程中,在用户通过身份验证后,授权系统以内存中的默认权限集开始。然后按顺序处理验证器映射,并根据它们的触发器条件调整权限。处理所有验证器的映射后,用户权限的内存中表示会与其现有的权限协调。
例如,以下是默认权限的一个简化内存表示,如下所示:
Access allowed = True
Superuser permission = Undefined
Admin of teams = None
此外,您可能具有需要处理的映射按照以下顺序处理:
- 允许将 规则集设置为 never
- 基于组的允许规则
- 基于用户属性的 超级用户 规则
- 基于 用户组的团队管理规则
第一个 Allow map 设置为 never,拒绝访问系统,内存表示形式如下:
Access allowed = False
Superuser permission = Undefined
Admin of teams = None
但是,如果用户与第二个 Allow map (基于组的 allow)匹配,则权限会更改为以下内容:
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
要撤销超级用户访问权限,您可以选择 Superuser 映射上的 Revoke 选项。这样,当用户不满足属性标准时,权限会更新为 False,如下所示:
Access allowed = True
Superuser permission = False
Admin of teams = None
最后的 团队映射 会检查来自团队"我的团队"的 admin 访问验证器的用户组。如果用户有所需的组,则权限会更新至以下内容:
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”
在按照定义的顺序处理所有映射后,最终权限协调后,根据映射规则更新用户的访问权限。
总之,验证器会验证用户,并将系统授权委派给验证器映射。执行验证器映射,以便创建用户权限的内存中表示,该符号在所有映射执行后与实际权限协调。
默认情况下,验证器映射返回 ALLOW 或 SKIPPED。
- ALLOW
- 这意味着检测到匹配项,平台应授予用户对相应角色或权限(如超级用户或团队成员)的访问权限。
- 跳过
- 这意味着用户与映射中的触发器不匹配,平台会跳过处理此映射,并继续检查剩余的映射。如果要在不需要更改验证器映射的情况下授予系统中额外权限,这非常有用。
但是,当选择了 Revoke 选项时,SKIPPED 将变为 DENY,不符合所需触发器条件的用户将被拒绝访问对应的角色或权限。这样可确保只有具有匹配触发器条件的用户才会被授予访问权限。