14.9. 使用 TOTP 配置红帽单点登录身份验证
使用本节将 Satellite 配置为使用 Red Hat Single Sign-On 作为使用 TOTP 卡进行外部身份验证的 OpenID 供应商。
14.9.1. 使用红帽单点登录身份验证配置 Satellite 的先决条件 复制链接链接已复制到粘贴板!
在使用 Red Hat Single Sign-On 外部身份验证配置 Satellite 前,请确保满足以下要求:
- 使用 HTTPS 而不是 HTTP 的 Red Hat Single Sign-On 服务器的功能安装。
- 具有 admin 权限的 Red Hat Single Sign-On 帐户。
- 在红帽单点登录中创建的 Satellite 用户帐户的域。
- 如果证书或 CA 是自签名的,请确保将它们添加到最终用户证书信任存储中。
用户导入或添加到红帽单点登录。
如果您配置了现有用户数据库,如 LDAP 或 Kerberos,您可以通过配置用户联邦从其中导入用户。如需更多信息,请参阅红帽单点登录服务器 管理指南中的 用户存储联邦。
如果您没有配置现有用户数据库,您可以在 Red Hat Single Sign-On 中手动创建用户。如需更多信息 ,请参阅 红帽单点登录服务器管理指南中的创建新用户。
14.9.2. 将 Satellite 注册为 Red Hat Single Sign-On 客户端 复制链接链接已复制到粘贴板!
使用这个流程将 Satellite 注册到 Red Hat Single Sign-On 作为客户端,并将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源。
您可以使用两种不同的身份验证方法配置 Satellite 和 Red Hat Single Sign-On:
- 用户使用 Satellite Web UI 向 Satellite 进行身份验证。
- 用户使用 Satellite CLI 向 Satellite 进行身份验证。
您必须预先决定用户如何进行身份验证,因为这两种方法都需要不同的 Satellite 客户端注册到 Red Hat Single Sign-On 和 configured。在红帽单点登录中注册和配置 Satellite 客户端的步骤在流程中区分。
如果要同时使用身份验证方法并相应地配置这两个客户端,您还可以在红帽单点登录中注册两个不同的 Satellite 客户端。
流程
在 Satellite 服务器上安装以下软件包:
satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
# satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Satellite 注册到 Red Hat Single Sign-On 作为客户端。请注意,您使用 Web UI 和 CLI 登录的注册过程不同。您可以将两个客户端 Satellite 客户端注册到红帽单点登录,以便能够通过 Web UI 和 CLI 登录 Satellite。
如果您希望用户使用 Web UI 向 Satellite 进行身份验证,请按如下所示创建客户端:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示时输入管理帐户的密码。此命令在红帽单点登录中为 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 提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。
重启
httpd服务:systemctl restart httpd
# systemctl restart httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
14.9.3. 在红帽单点登录中配置 Satellite 客户端 复制链接链接已复制到粘贴板!
使用这个流程在 Red Hat Single Sign-On Web UI 中配置 Satellite 客户端,并为 Satellite 客户端创建组和使用者映射程序。
流程
- 在 Red Hat Single Sign-On Web UI 中,导航到 Clients 并点 Satellite 客户端。
配置访问类型:
- 如果您希望用户使用 Satellite Web UI 验证 Satellite,请从 Access Type 列表中选择 机密。
- 如果您希望用户使用 CLI 向 Satellite 进行身份验证,请从 Access Type 列表中选择 public。
在 Valid redirect URI 字段中,添加有效的重定向 URI。
如果您希望用户使用 Satellite Web UI 验证 Satellite,位于现有 URI 下的空白字段中,以
https://satellite.example.com/users/extlogin格式输入 URI。请注意,您必须在 Satellite FQDN 后添加字符串/users/extlogin。完成此步骤后,使用 Satellite 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/extloginCopy 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:oobCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 点击 Save。
- 点 Mappers 选项卡,点 Create 添加 audience mapper。
- 在 Name 字段中输入 audience mapper 的名称。
- 从 Mapper Type 列表中,选择 Audience。
- 从 Included Client Audience 列表中,选择 Satellite 客户端。
- 点击 Save。
- 点 Create 添加组映射程序,以便您可以根据组成员资格在 Satellite 中指定授权。
- 在 Name 字段中输入 group mapper 的名称。
- 从 Mapper Type 列表中,选择 Group Membership。
- 在 Token Claim Name 字段中输入 groups。
- 将 Full group path 设置为 OFF。
- 点击 Save。
14.9.4. 为红帽单点登录身份验证配置 Satellite 设置 复制链接链接已复制到粘贴板!
使用本节通过 Satellite Web UI 或 CLI 为 Red Hat Single Sign-On 身份验证配置 Satellite。
14.9.4.1. 使用 Web UI 为红帽单点登录身份验证配置 Satellite 设置 复制链接链接已复制到粘贴板!
使用这个流程,使用 Satellite Web UI 为红帽单点登录身份验证配置 Satellite 设置。
请注意,您可以导航到域中以下 URL,以获取用于配置 Satellite 设置的值 :https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
前提条件
- 确保 Red Hat Single Sign-On Web UI 中的 Satellite 客户端中的 Access Type 设置设为 confidential
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Authentication 选项卡。
- 在 Value 列中找到 Authorize login delegation 行,将值设为 Yes。
- 在 Value 列中找到 Authorize login delegation auth source user autocreate 行,将值设为 External。
- 在 Value 列中找到 Login delegation logout URL 行,将值设为 https://satellite.example.com/users/extlogout。
- 在 Value 列中找到 OIDC Algorithm 行,将 Red Hat Single Sign-On 上的编码算法设置为 RS256。
- 找到 OIDC Audience 行,在 Value 列中,将值设置为 Red Hat Single Sign-On 的客户端 ID。
- 在 Value 列中找到 OIDC Issuer 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm。
- 在 Value 列中找到 OIDC JWKs URL 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs。
- 在 Satellite Web UI 中,进入到 Administer > Authentication Sources,点 External 卡中的垂直 ellipsis,然后选择 Edit。
- 点 Locations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的位置。
- 点 Organizations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的组织。
- 点 Submit。
14.9.4.2. 使用 CLI 为红帽单点登录身份验证配置 Satellite 设置 复制链接链接已复制到粘贴板!
使用这个流程使用 Satellite CLI 为 Red Hat Single Sign-On 身份验证配置 Satellite 设置。
请注意,您可以导航到域中以下 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 Liberty 协议进行身份验证:hammer settings set --name authorize_login_delegation --value true
# hammer settings set --name authorize_login_delegation --value trueCopy 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/extlogoutCopy 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-configurationURL,并记录这些值来填充以下步骤中的选项。 在 Openö 使用者中为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 注意如果您在 Satellite 中注册了多个 Red Hat Single Sign-On 客户端,请确保附加阵列中的所有使用者。例如:
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 为 Open114 签发者设置值:
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 Liberty Java Web Token (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 listCopy 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 IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用这个流程将 Satellite 配置为使用 Red Hat Single Sign-On 作为 OpenID 供应商,通过基于时间的一次性密码(TOTP)进行外部身份验证。
流程
- 在 Red Hat Single Sign-On Web UI 中,导航到 Satellite 域。
- 导航到 Authentication,然后单击 OTP Policy 选项卡。
- 确保 支持的 Applications 字段包含 FreeOTP 或 Google Authenticator。
- 配置 OTP 设置以满足您的要求。
- 可选:如果要将 TOTP 身份验证用作所有用户的默认身份验证方法,请点 Flows 选项卡,并在 OTP Form 设置右侧选择 REQUIRED。
- 点 Required Actions 选项卡。
- 在 Configure OTP 行右侧,选中 Default Action 复选框。
14.9.6. 使用红帽单点登录 TOTP 身份验证登录到 Satellite Web UI 复制链接链接已复制到粘贴板!
使用 Red Hat Single Sign-On TOTP 身份验证登录到 Satellite Web UI。
流程
- 登录到 Satellite,Satellite 会重定向到 Red Hat Single Sign-On 登录屏幕。
- 输入您的用户名和密码,然后单击 Log In。
- 第一次尝试登录,Red Hat Single Sign-On 请求通过扫描 barcode 并输入 pin 来配置客户端。
- 配置客户端并输入有效的 PIN 后,Red Hat Single Sign-On 会将您重定向到 Satellite 并登录。
14.9.7. 使用红帽单点登录登录到 Satellite CLI 复制链接链接已复制到粘贴板!
使用这个流程使用代码授权类型向 Satellite CLI 进行身份验证。
流程
要使用代码授权类型向 Satellite CLI 进行身份验证,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令会提示您输入成功代码。
- 要检索成功代码,请导航到命令返回的 URL 并提供所需信息。
- 复制 Web UI 返回的成功代码。
-
在
hammer auth login oauth命令提示符中,输入成功代码来向 Satellite CLI 进行身份验证。
14.9.8. 为红帽单点登录身份验证配置组映射 复制链接链接已复制到粘贴板!
要实施基于角色的访问控制(RBAC),请在 Satellite 中创建组,为该组分配一个角色,然后将 Active Directory 组映射到 Satellite 组。因此,红帽单点登录中给定组中的任何人都在对应的 Satellite 组下登录。本例配置 Active Directory 中 Satellite-admin 用户组的用户,以对 Satellite 具有管理员特权的用户进行身份验证。
流程
- 在 Satellite Web UI 中,导航到 Administer > User Groups,然后点 Create User Group 按钮。
- 在 Name 字段中输入用户组的名称。名称不应与 Active Directory 中相同。
- 不要将用户和用户组添加到右侧列。点 Roles 选项卡。
- 选中 Administer 复选框。
- 点 External Groups 选项卡。
- 单击 Add external user group。
- 在 Name 字段中输入 Active Directory 组的名称。
- 从列表中选择 EXTERNAL。