为 Ansible Automation Platform 安装和配置中央身份验证
为 Ansible Automation Platform 启用中央身份验证功能
摘要
前言
Ansible Automation Platform Central Authentication 是第三方身份提供程序(idP)解决方案,允许在 Ansible Automation Platform 中使用简化的单点登录解决方案。平台管理员可以利用集中身份验证来测试连接和身份验证,也可添加新用户,并通过配置和管理用户权限来管理用户权限。除了基于 OpenID Connect 和 LDAP 支持,中央身份验证还提供受支持的 REST API,可用于引导客户使用。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 用于自动化的 Ansible Automation Platform Central Authentication
要为您的自动化中心启用 Ansible Automation Platform 中央身份验证,请从下载 Red Hat Ansible Automation Platform 安装程序开始,然后执行本指南中详述的必要的设置步骤。
本指南中的安装程序将为基本单机部署安装中央身份验证。单机模式仅运行一个中央身份验证服务器实例,因此不适用于集群部署。单机模式可用于测试和试用中央身份验证功能,但不建议在生产环境中使用它,因为其具有单点故障。
要在不同的部署模式下安装中央身份验证,请参阅本指南以了解更多部署选项。
1.1. 系统要求
安装和运行 Ansible Automation Platform Central 身份验证有几个最低要求:
- 任何运行 Java 的操作系统
- Java 8 JDK
- zip 或 gzip 和 tar
- 至少 512mb RAM
- 至少 1gb 磁盘空间
- 如果要在集群中运行中央身份验证,需要一个如 PostgreSQL、MySQL、Oracle 等的共享外部数据库。如需更多信息,请参阅本指南的数据库配置部分。
- 如果要在集群中运行,需要在您的机器上支持网络多播。中央身份验证虽然可以在没有多播的情况下实现,但这需要一些配置更改。如需更多信息,请参阅本指南的集群部分。
-
在 Linux 上,建议使用
/dev/urandom
作为随机数据源,以防止因为缺少可用熵而导致集中身份验证挂起,除非安全策略强制使用/dev/random
。要在 Oracle JDK 8 和 OpenJDK 8 上达到此目的,请在启动时将java.security.egd
系统属性设置为file:/dev/urandom
。
1.2. 安装 Ansible Automation Platform Central 身份验证以用于自动化 hub
Ansible Automation Platform Central Authentication 安装将包含在您的 Red Hat Ansible Automation Platform 安装程序中。按照以下步骤安装 Ansible Automation Platform,然后在清单文件中配置必要的参数,以成功安装 Ansible Automation Platform 和中央身份验证。
1.2.1. 选择并获取 Red Hat Ansible Automation Platform 安装程序
根据您的 Red Hat Enterprise Linux 环境互联网连接,选择您需要的 Red Hat Ansible Automation Platform 安装程序。查看以下场景,并确定哪个 Red Hat Ansible Automation Platform 安装程序满足您的需求。
需要有效的红帽客户帐户才能访问红帽客户门户上的 Red Hat Ansible Automation Platform 安装程序下载。
使用互联网访问进行安装
如果您的 Red Hat Enterprise Linux 环境连接到互联网,请选择 Red Hat Ansible Automation Platform (AAP) 安装程序。使用互联网访问进行安装会检索最新的软件仓库、软件包和依赖项。选择以下方法之一设置 AAP 安装程序。
Tarball 安装
- 导航到 Red Hat Ansible Automation Platform 下载页面。
- 为 Ansible Automation Platform <latest-version> Setup 点 。
解压文件:
$ tar xvzf ansible-automation-platform-setup-<latest-version>.tar.gz
RPM 安装
安装 Ansible Automation Platform 安装程序软件包
v.2.3 for RHEL 8 for x86_64
$ sudo dnf install --enablerepo=ansible-automation-platform-2.3-for-rhel-8-x86_64-rpms ansible-automation-platform-installer
v.2.3 for RHEL 9 for x86-64
$ sudo dnf install --enablerepo=ansible-automation-platform-2.3-for-rhel-9-x86_64-rpms ansible-automation-platform-installer
dnf install
启用存储库,因为默认禁用存储库。
使用 RPM 安装程序时,文件位于 /opt/ansible-automation-platform/installer
目录下。
在没有互联网访问的情况下安装
如果您无法访问互联网,或者不想从在线存储库安装独立的组件和依赖项,请使用 Red Hat Ansible Automation PlatformBundle 安装程序。仍然需要访问 Red Hat Enterprise Linux 软件仓库。所有其他依赖项都包含在 tar 归档中。
- 导航到 Red Hat Ansible Automation Platform 下载页面。
- 为 Ansible Automation Platform <latest-version> Setup Bundle 点 。
解压文件:
$ tar xvzf ansible-automation-platform-setup-bundle-<latest-version>.tar.gz
1.2.2. 配置 Red Hat Ansible Automation Platform 安装程序
在运行安装程序前,请编辑安装程序软件包中找到的清单文件,以配置自动化中心和 Ansible Automation Platform Central 身份验证的安装。
为 [automationhub] 主机提供可访问的 IP 地址,以确保用户可以从不同节点同步私有 Automation Hub 中的内容,并将新镜像推送到容器注册表。
进入安装程序目录:
在线安装程序:
$ cd ansible-automation-platform-setup-<latest-version>
捆绑的安装程序:
$ cd ansible-automation-platform-setup-bundle-<latest-version>
- 使用文本编辑器打开 inventory 文件。
编辑
[automationhub]
下的清单文件参数以指定自动化 hub 主机的安装:-
使用 IP 地址或 FQDN 作为自动化中心位置,在
[automationhub]
下添加组主机信息。 -
根据您的安装规格,输入
automationhub_admin_password
,automationhub_pg_password
的密码,以及任何额外的参数。
-
使用 IP 地址或 FQDN 作为自动化中心位置,在
-
在
sso_keystore_password
字段中输入密码。 编辑
[SSO]
下的清单文件参数,以指定要在其上安装中央身份验证的主机:-
在
sso_console_admin_password
字段中输入密码,并根据您的安装规格输入其他参数。
-
在
1.2.3. 运行 Red Hat Ansible Automation Platform 安装程序
更新清单文件后,使用安装程序软件包中找到的 setup.sh
playbook 运行安装程序。
运行
setup.sh
playbook:$ ./setup.sh
1.2.4. 以中央身份验证管理员用户身份登录
安装 Red Hat Ansible Automation Platform 后,以 admin 用户身份使用您在清单文件中指定的 admin 凭据登录中央身份验证服务器。
- 进入到您的 Ansible Automation Platform Central Authentication 实例。
-
使用在清单文件的
sso_console_admin_username
和sso_console_admin_password fields
中指定的 admin 凭证进行登录。
成功安装 Ansible Automation Platform Central 身份验证后,并且登录 admin 用户后,您可以按照以下步骤添加用户存储提供商(如 LDAP)。
第 2 章 将用户存储提供程序(LDAP/Kerberos)添加到 Ansible 自动化平台中央身份验证中
Ansible Automation Platform Central 身份验证附带内置 LDAP/AD 提供程序。您可以添加 LDAP 提供程序到中央身份验证,以便能够从 LDAP 数据库导入用户属性。
先决条件
- 以 SSO admin 用户身份登录。
流程
- 以 SSO admin 用户身份登录 Ansible 自动化平台中央身份验证。
- 在导航栏中,选择 → 。
在 RH-SSO 中使用 LDAP 用户联邦时,必须将组映射器添加到客户端配置 ansible-automation-platform 中,以将身份提供程序(IDP)组公开给 SAML 身份验证。有关 SAML 断言映射的更多信息,请参阅 OIDC 令牌和 SAML 断言映射。
- 利用标有 Add provider 的下拉菜单,选择您的 LDAP 提供程序,以进入 LDAP 配置页面。
下表列出了 LDAP 配置的可用选项:
配置选项 | Description |
存储模式 | 如果要将用户导入到中央身份验证用户数据库,请将用户设置为 On。如需更多信息,请参阅存储模式。 |
编辑模式 | 决定管理员可以对用户元数据进行的修改类型。如需更多信息,请参阅编辑模式。 |
控制台显示名称 | 在管理控制台中引用此提供程序时使用的名称 |
优先级 | 查找用户或添加用户的优先级 |
同步注册 | 如果要在管理控制台或注册页面中添加 Ansible Automation Platform Central Authentication 创建的新用户,请启用 |
允许 Kerberos 身份验证 | 通过从 LDAP 调配的用户数据,在域中启用 Kerberos/SPNEGO 身份验证。如需更多信息,请参阅 Kerberos。 |
第 3 章 分配自动化 hub 管理员权限
需要为 hub 管理用户分配 hubadmin 角色,以便管理用户权限和组。您可以通过 Ansible Automation Platform Central Authentication 客户端将 hubadmin 角色分配给用户。
先决条件
- 用户存储提供程序(如 LDAP)已添加到您的中央身份验证中
流程
-
进入 SSO 客户端上的
ansible-automation-platform
域。 - 从导航栏中,选择 → 。
- 点用户 ID,从列表中选择用户。
- 点 Role Mappings 选项卡。
- 使用客户端角色下的下拉菜单 ,选择 automation-hub。
- 从 Available Roles 字段中点 ,然后点 。
用户现在是 hubadmin。重复步骤 3-6,为 hubadmin 角色分配任何其他用户。
第 4 章 将身份代理添加到 Ansible Automation Platform 中央身份验证中
Ansible Automation Platform Central Authentication 支持社交供应商和基于协议的提供程序。您可以将身份代理添加到中央身份验证中,以便为域启用社交身份验证,允许用户使用现有的社交网络帐户(如 Google、Facebook、GitHub 等)登录。
有关支持的社交网络列表以及启用它们的更多信息,请参阅本节。
基于协议的供应商是指那些依赖特定协议来验证和授权用户的供应商。它们允许您连接到符合特定协议的任何身份提供程序。Ansible Automation Platform Central Authentication 提供对 SAML v2.0 和 OpenID Connect v1.0 协议的支持。
流程
- 以管理员用户身份登录 Ansible Automation Platform 中央身份验证。
- 在侧面导航栏上的 Configure 部分下,点 。
- 利用标记为 Add provider 的下拉菜单,选择您的身份提供程序以前往身份提供程序配置页面。
下表列出了您的身份提供程序配置的可用选项:
配置选项 | Description |
Alias |
alias 是身份提供程序的唯一标识符。它用于在内部引用身份提供程序。 |
Enabled | 打开/关闭提供程序。 |
在登录页中隐藏 |
如果启用,此提供程序不会在登录页面中显示为登录选项。客户端仍然可以通过在用于请求登录的 URL 中使用 |
仅限客户链接 | 如果启用,则此提供程序无法用于登录用户,也不会在登录页面中显示为选项。现有帐户仍可与此供应商相关联。 |
存储令牌 | 是否存储从身份提供程序收到的令牌。 |
存储的令牌可读 | 是否允许用户检索已存储的身份提供商令牌。这也适用于代理客户端级别的角色读取令牌。 |
信任电子邮件 | 身份提供商提供的电子邮件地址是否受信任。如果域需要验证电子邮件,则从此 IDP 登录的用户不必通过电子邮件验证过程。 |
GUI 顺序 | 登录页面中列出了如何列出可用 IDP 的排序顺序号。 |
第一个登录流 | 选择将为首次通过此 IDP 登录集中身份验证的用户触发的身份验证流程。 |
后登录流 | 选择用户完成与外部身份提供程序登录后触发的身份验证流。 |
4.1. 使用 Ansible Automation Platform Central Authentication 管理组权限
您可以通过将特定权限分组到角色中来管理 Ansible Automation Platform 上的用户访问权限,然后将这些角色分配到组。当您第一次登录到 Ansible Automation Platform 时,Users, Groups, and Roles 会出现在自动化中心的用户访问页面中,然后您可以为每个组分配用户访问权限和角色。
Automation hub 包括了一组与您可能会遇到的用例兼容的受管角色。您可以创建自己的一组受管角色,或使用 User Access 页的 Roles 部分中的预定义角色。
4.1.1. 将权限分组到角色中
您可以将权限分组到角色中,使特定用户对系统中的功能具有访问权限。
先决条件
-
以
hubadmin
用户身份登录。
流程
- 登录到您的本地自动化中心。
- 进入到 User Access 下拉菜单。
- 点 。
- 点 。
- 在 Name 字段中输入角色名称。
- 在 Description 字段中输入角色描述。
- 点每个 Permissions 类型旁边的下拉菜单,并为角色选择适当的权限。
- 点击 。
您已创建了具有特定权限的新角色。现在,您可以将此角色分配给组。
4.1.1.1. 将角色分配给组
您可以将角色分配给组,从 Groups 菜单和 Namespaces 菜单中授予用户对系统中特定功能的访问权限。从 Groups 菜单中分配给组的角色具有全局范围。例如,如果用户被分配一个命名空间所有者角色,则该权限适用于所有命名空间。但是,从 Namespaces 菜单中分配给组的角色将只授予用户对对象的特定实例的访问权限。
先决条件
-
以
hubadmin
用户身份登录。
流程
从 Groups 菜单分配角色。
- 登录到您的本地自动化中心。
- 进入到 User Access 下拉菜单。
- 点 并选择组的名称。
- 点 。
- 点您要添加的角色旁边的复选框。
- 点 以预览将应用到该组的角色。
- 点 将所选角色应用到组。
点
以返回到角色菜单,或者点 以返回到上一页。流程
从 Namespaces 菜单中分配角色。
- 登录到您的本地自动化中心。
- 进入到 Collections 下拉菜单。
- 点 My Namespaces 选项卡,然后选择一个命名空间。
- 点 Namespace owners 选项卡编辑。
用户现在可以访问自动化 hub 中的功能,与其分配的权限相关联。
4.1.2. Automation hub 权限
权限为每个组提供了在给定对象上执行的一组定义的操作的权利。根据以下权限确定您的组所需的访问权限级别:
对象 | 权限 | 描述 |
---|---|---|
集合命名空间 | 添加命名空间 Upload to namespace(上传到命名空间) 更改命名空间 删除命名空间 | 具有这些权限的组可以创建、上传集合或删除命名空间。 |
collections | 修改 Ansible repo 内容 删除集合 | 具有此权限的组可以使用 Approval 功能在存储库间移动内容,认证或拒绝功能,将内容从 staging 移到 published 或 rejected 存储库,abd 删除集合。 |
users | 查看用户 Delete user(删除用户) Add user(添加用户) 更改用户 | 具有这些权限的组群可以在 Automation Hub 中管理用户配置和访问。 |
groups | View group(查看组) Delete group(删除组) Add group(添加组) 更改组 | 使用这些权限的组可以在 Automation Hub 中管理组配置和访问。 |
collection remotes | 更改集合远程 查看集合远程 | 具有这些权限的组可以通过进入到 → 来配置远程存储库。 |
containers | 更改容器命名空间权限 更改容器 更改镜像标签 创建新容器 推送到现有容器 删除容器仓库 | 具有这些权限的组可以在 automation hub 中管理容器存储库。 |
remote registries | 添加远程 registry 更改远程 registry 删除远程 registry | 具有这些权限的组可以添加、更改或删除添加到 automation hub(自动化中心)的远程 registry。 |
task management | 更改任务 删除任务 查看所有任务 | 带有这些权限的组可以管理加入到 automation hub 中的 Task Management 中的任务。 |