13.8. 使用 Red Hat Single Sign-On 身份验证配置 Satellite
使用这个部分将卫星配置为使用红帽单点登录作为外部身份验证的 OpenID 提供程序。
13.8.1. 使用红帽单点登录身份验证配置 Satellite 的先决条件 复制链接链接已复制到粘贴板!
在使用 Red Hat Single Sign-On 外部验证配置 Satellite 前,请确定您满足以下要求:
- 工作安装使用 HTTPS 而不是 HTTP 的 Red Hat Single Sign-On 服务器。
- 具有管理特权的 Red Hat Single Sign-On 帐户。
- 在红帽单点登录中创建的 Satellite 用户帐户的域。
- 如果证书或 CA 是自签名的,请确保将其添加到最终用户证书信任存储中。
导入或添加到红帽单点登录的用户。
如果您配置了现有用户数据库,如 LDAP 或 Kerberos,您可以通过配置用户联合来导入用户。如需更多信息,请参阅 Red Hat Single Sign-On Server 管理指南 中的用户 存储 创建器。
如果您没有配置现有用户数据库,可以在 Red Hat Single Sign-On 中手动创建用户。如需更多信息,请参阅 Red Hat Single Sign-On Server 管理指南 中的创建新用户。https://access.redhat.com/documentation/zh-cn/red_hat_single_sign-on/7.4/html/server_administration_guide/user_management#create-new-user
13.8.2. 将 Satellite 注册为红帽单点登录客户端 复制链接链接已复制到粘贴板!
使用这个步骤将 Satellite 注册到 Red Hat Single Sign-On 作为客户端,并将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源。
您可以使用两个不同的身份验证方法配置 Satellite 和 Red Hat Single Sign-On:
- 用户使用卫星 Web UI 验证卫星。
- 用户使用 Satellite CLI 对 Satellite 进行身份验证。
您必须决定用户提前验证,因为这两种方法都需要注册到 Red Hat Single Sign-On 并配置了不同的卫星客户端。在 Red Hat Single Sign-On 中注册和配置 Satellite 客户端的步骤可区分在过程中。
如果要使用身份验证方法并相应地配置这两个客户端,您也可以将两个不同的卫星客户端注册到 Red Hat Single Sign-On。
流程
在 Satellite 服务器中安装以下软件包:
satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
# satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Satellite 注册到红帽单点登录作为客户端。请注意,您使用 Web UI 和 CLI 登录的注册过程有所不同。您可以将两个客户端注册到红帽单点登录,以便能够通过 Web UI 和 CLI 登录卫星。
如果您希望用户使用 Web UI 验证 Satellite,请按如下所示创建客户端:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在提示时输入 manage 帐户的密码。此命令会在 Red Hat Single Sign-On 中为 Satellite 创建客户端。
然后,将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源:
satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "Satellite_Realm"
# satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "Satellite_Realm"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您希望用户通过 CLI 验证 Satellite,请按如下所示创建客户端:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在提示时输入 manage 帐户的密码。此命令会在 Red Hat Single Sign-On 中为 Satellite 创建客户端。
重启
httpd
服务:systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.8.3. 在 Red Hat Single Sign-On 中配置 Satellite 客户端 复制链接链接已复制到粘贴板!
使用这个步骤在 Red Hat Single Sign-On Web UI 中配置 Satellite 客户端,并为卫星客户端创建组和使用者映射程序。
流程
- 在 Red Hat Single Sign-On Web UI 中,导航到 Clients 并单击 Satellite 客户端。
配置访问类型:
- 如果您希望用户使用 Web UI 向 Satellite 进行身份验证,从 Access Type 列表中选择 confidential。
- 如果您希望用户使用 CLI 向 Satellite 进行身份验证,从 Access Type 列表中选择 public。
在 Valid redirect URI 字段中,添加有效的重定向 URI。
如果您希望用户使用 Web UI 验证 Satellite,在现有 URI 下的空白字段中,以
https://satellite.example.com/users/extlogin
格式输入 URI。请注意,您必须在 Satellite FQDN 之后添加字符串/users/extlogin
。完成此步骤后,使用 Web UI 登录的 Satellite 客户端必须具有以下 Valid Redirect URI :
https://satellite.example.com/users/extlogin/redirect_uri https://satellite.example.com/users/extlogin
https://satellite.example.com/users/extlogin/redirect_uri https://satellite.example.com/users/extlogin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您希望用户使用 CLI 向 Satellite 进行身份验证,在现有 URI 下的空白字段中,输入 urn:ietf:wg:oauth:2.0:oob。
完成此步骤后,使用 CLI 登录的 Satellite 客户端必须具有以下 Valid Redirect URI :
https://satellite.example.com/users/extlogin/redirect_uri urn:ietf:wg:oauth:2.0:oob
https://satellite.example.com/users/extlogin/redirect_uri urn:ietf:wg:oauth:2.0:oob
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 点 Save。
- 点 mappers 选项卡,然后点 Create 添加 audience mapper。
- 在 Name 字段中输入 audience mapper 的名称。
- 从 映射类型 列表中,选择 Audience。
- 从 Included Client Audience 列表中,选择 Satellite 客户端。
- 点 Save。
- 点 Create 添加组映射程序,以便您可以根据组成员资格在 Satellite 中指定授权。
- 在 Name 字段中输入组映射程序的名称。
- 从 映射类型 列表中,选择 Group Membership。
- 在 Token Claim Name 字段中输入组 。
- 将 Full group path 设置设为 OFF。
- 点 Save。
13.8.4. 为红帽单点登录身份验证配置 Satellite 设置 复制链接链接已复制到粘贴板!
使用这个部分,使用卫星 Web UI 或 CLI 为红帽单点登录身份验证配置 Satellite。
13.8.4.1. 使用 Web UI 为红帽单点登录身份验证配置 Satellite 设置 复制链接链接已复制到粘贴板!
使用 Satellite Web UI 为红帽单点登录身份验证配置卫星设置。
请注意,您可以导航到域中的以下 URL,以获取配置 Satellite 设置的值: https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置设为 机密
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Authentication 选项卡。
- 找到 Authorize login delegation 行,然后在 Value 列中找到值设为 Yes。
- 找到 Authorize login delegation auth source user autocreate row,在 Value 列中,将值设为 External。
- 找到 登录委托注销 URL 行,在 Value 列中,将值设为 https://satellite.example.com/users/extlogout。
- 找到 OIDC Algorithm 行,在 Value 列中,将 Red Hat Single Sign-On 上的编码的算法设置为 RS256。
- 找到 OIDC Audience 行,在 Value 列中,将值设置为 Red Hat Single Sign-On 的客户端 ID。
- 找到 OIDC Issuer 行,在 Value 列中找到,将值设置为 https://RHSSO.example.com/auth/realms/Satellite_Realm。
- 找到 OIDC JWKs URL 行,在 Value 列中,将值设置为 https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs。
- 导航到 Administer > Authentication Sources,再点击 External。
- 点击 Create LDAP Authentication Source 并选择 Red Hat Single Sign-On 服务器。
- 单击位置选项卡,再添加可以使用红帽单点登录身份验证来源的位置。
- 单击 Organizations 选项卡,再添加可以使用 Red Hat Single Sign-On 验证源的组织。
- 点 Submit。
13.8.4.2. 使用 CLI 为红帽单点登录身份验证配置 Satellite 设置 复制链接链接已复制到粘贴板!
使用此流程,通过 Satellite CLI 为红帽单点登录身份验证配置卫星设置。
请注意,您可以导航到域中的以下 URL,以获取配置 Satellite 设置的值: https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置设为 public
流程
在 Satellite 上,将登录委托设置为
true
,以便用户可以使用 Open IDC 协议进行身份验证:hammer settings set --name authorize_login_delegation --value true
# hammer settings set --name authorize_login_delegation --value true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置登录委托注销 URL:
hammer settings set --name login_delegation_logout_url \ --value https://satellite.example.com/users/extlogout
# hammer settings set --name login_delegation_logout_url \ --value https://satellite.example.com/users/extlogout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Single Sign-On 上设置编码的算法,如
RS256
:hammer settings set --name oidc_algorithm --value 'RS256'
# hammer settings set --name oidc_algorithm --value 'RS256'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration
URL,并记录这些值以填充以下步骤中的选项。 在 Open IDC 使用者中添加 Hammer 客户的值:
hammer settings set --name oidc_audience \ --value "['satellite.example.com-hammer-openidc']"
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-hammer-openidc']"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您将多个 Red Hat Single Sign-On 客户端注册到 Satellite,请确保在阵列中附加所有受众。例如:
hammer settings set --name oidc_audience \ --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 Open IDC 签发者的值:
hammer settings set --name oidc_issuer \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
# hammer settings set --name oidc_issuer \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 Open IDC Java Web 令牌(JWT)的值:
hammer settings set --name oidc_jwks_url \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs"
# hammer settings set --name oidc_jwks_url \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索 Red Hat Single Sign-On 验证源的 ID:
hammer auth-source external list
# hammer auth-source external list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置位置和机构:
hammer auth-source external update --id Authentication Source ID \ --location-ids Location ID --organization-ids Organization ID
# hammer auth-source external update --id Authentication Source ID \ --location-ids Location ID --organization-ids Organization ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.8.5. 使用 Red Hat Single Sign-On 登录 Satellite Web UI 复制链接链接已复制到粘贴板!
使用此流程,使用红帽单点登录登录卫星 Web UI。
流程
- 在您的浏览器中,登录 Satellite 并输入您的凭证。
13.8.6. 使用 Red Hat Single Sign-On 登录 Satellite CLI 复制链接链接已复制到粘贴板!
使用此流程,通过代码授权类型对 Satellite CLI 进行身份验证。
流程
要使用代码授权类型验证 Satellite CLI,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令提示您输入成功代码。
- 要检索成功代码,请导航到命令返回并提供所需信息的 URL。
- 复制 Web UI 返回的成功代码。
-
在
hammer auth login oauth
命令提示符下,输入成功代码以向 Satellite CLI 进行身份验证。
13.8.7. 为红帽单点登录身份验证配置组映射 复制链接链接已复制到粘贴板!
另外,要实施基于角色的访问控制(RBAC),在 Satellite 中创建组,将角色分配给此组,然后将 Active Directory 组映射到 Satellite 组。因此,Red Hat Single Sign-On 中给定组中的任何人都登录在对应的 Satellite 组下。本例在 Active Directory 中配置 Satellite-admin 用户组的用户,以以具有卫星上具有管理员特权的用户进行身份验证。
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups,然后单击 Create User Group 按钮。
- 在 Name 字段中输入用户组群的名称。名称不应与 Active Directory 中的相同。
- 不要在右列中添加用户和用户组。点 Roles 选项卡。
- 选中 Administer 复选框。
- 点 External Groups 选项卡。
- 点 Add external user group。
- 在 Name 字段中输入 Active Directory 组的名称。
- 从列表中,选择 EXTERNAL。