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 令牌。要更改此行为,请启用此设置。当此设置关闭时,现有令牌不会被删除。
- 点 以保存更改或继续配置其他可用的平台选项。