14.9. 使用 TOTP 配置红帽单点登录身份验证


使用本节将 Satellite 配置为使用 Red Hat Single Sign-On 作为使用 TOTP 卡进行外部身份验证的 OpenID 供应商。

在使用 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 中手动创建用户。如需更多信息 ,请参阅 红帽单点登录服务器管理指南中的创建新用户

使用这个流程将 Satellite 注册到 Red Hat Single Sign-On 作为客户端,并将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源。

您可以使用两种不同的身份验证方法配置 Satellite 和 Red Hat Single Sign-On:

  1. 用户使用 Satellite Web UI 向 Satellite 进行身份验证。
  2. 用户使用 Satellite CLI 向 Satellite 进行身份验证。

您必须预先决定用户如何进行身份验证,因为这两种方法都需要不同的 Satellite 客户端注册到 Red Hat Single Sign-On 和 configured。在红帽单点登录中注册和配置 Satellite 客户端的步骤在流程中区分。

如果要同时使用身份验证方法并相应地配置这两个客户端,您还可以在红帽单点登录中注册两个不同的 Satellite 客户端。

流程

  1. 在 Satellite 服务器上安装以下软件包:

    # satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
    Copy to Clipboard Toggle word wrap
  2. 将 Satellite 注册到 Red Hat Single Sign-On 作为客户端。请注意,您使用 Web UI 和 CLI 登录的注册过程不同。您可以将两个客户端 Satellite 客户端注册到红帽单点登录,以便能够通过 Web UI 和 CLI 登录 Satellite。

    • 如果您希望用户使用 Web UI 向 Satellite 进行身份验证,请按如下所示创建客户端:

      # keycloak-httpd-client-install --app-name foreman-openidc \
      --keycloak-server-url "https://RHSSO.example.com" \
      --keycloak-admin-username "admin" \
      --keycloak-realm "Satellite_Realm" \
      --keycloak-admin-realm master \
      --keycloak-auth-role root-admin \
      -t openidc -l /users/extlogin --force
      Copy to Clipboard Toggle word wrap

      提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。

      然后,将 Satellite 配置为使用 Red Hat Single Sign-On 作为身份验证源:

      # satellite-installer --foreman-keycloak true \
      --foreman-keycloak-app-name "foreman-openidc" \
      --foreman-keycloak-realm "Satellite_Realm"
      Copy to Clipboard Toggle word wrap
    • 如果您希望用户使用 CLI 向 Satellite 进行身份验证,请创建客户端,如下所示:

      # keycloak-httpd-client-install --app-name hammer-openidc \
      --keycloak-server-url "https://RHSSO.example.com" \
      --keycloak-admin-username "admin" \
      --keycloak-realm "Satellite_Realm" \
      --keycloak-admin-realm master \
      --keycloak-auth-role root-admin \
      -t openidc -l /users/extlogin --force
      Copy to Clipboard Toggle word wrap

      提示时输入管理帐户的密码。此命令在红帽单点登录中为 Satellite 创建客户端。

  3. 重启 httpd 服务:

    # systemctl restart httpd
    Copy to Clipboard Toggle word wrap

14.9.3. 在红帽单点登录中配置 Satellite 客户端

使用这个流程在 Red Hat Single Sign-On Web UI 中配置 Satellite 客户端,并为 Satellite 客户端创建组和使用者映射程序。

流程

  1. 在 Red Hat Single Sign-On Web UI 中,导航到 Clients 并点 Satellite 客户端。
  2. 配置访问类型:

    • 如果您希望用户使用 Satellite Web UI 验证 Satellite,请从 Access Type 列表中选择 机密
    • 如果您希望用户使用 CLI 向 Satellite 进行身份验证,请从 Access Type 列表中选择 public
  3. 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
      Copy to Clipboard Toggle word wrap
    • 如果您希望用户使用 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
      Copy to Clipboard Toggle word wrap
  4. 点击 Save
  5. Mappers 选项卡,点 Create 添加 audience mapper。
  6. Name 字段中输入 audience mapper 的名称。
  7. Mapper Type 列表中,选择 Audience
  8. Included Client Audience 列表中,选择 Satellite 客户端。
  9. 点击 Save
  10. Create 添加组映射程序,以便您可以根据组成员资格在 Satellite 中指定授权。
  11. Name 字段中输入 group mapper 的名称。
  12. Mapper Type 列表中,选择 Group Membership
  13. Token Claim Name 字段中输入 groups
  14. Full group path 设置为 OFF。
  15. 点击 Save

使用本节通过 Satellite Web UI 或 CLI 为 Red Hat Single Sign-On 身份验证配置 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

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Authentication 选项卡。
  2. Value 列中找到 Authorize login delegation 行,将值设为 Yes
  3. Value 列中找到 Authorize login delegation auth source user autocreate 行,将值设为 External
  4. Value 列中找到 Login delegation logout URL 行,将值设为 https://satellite.example.com/users/extlogout
  5. Value 列中找到 OIDC Algorithm 行,将 Red Hat Single Sign-On 上的编码算法设置为 RS256
  6. 找到 OIDC Audience 行,在 Value 列中,将值设置为 Red Hat Single Sign-On 的客户端 ID。
  7. Value 列中找到 OIDC Issuer 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm
  8. Value 列中找到 OIDC JWKs URL 行,将值设为 https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs
  9. 在 Satellite Web UI 中,进入到 Administer > Authentication Sources,点 External 卡中的垂直 ellipsis,然后选择 Edit
  10. Locations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的位置。
  11. Organizations 选项卡,并添加可以使用 Red Hat Single Sign-On 身份验证源的组织。
  12. Submit

使用这个流程使用 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

流程

  1. 在 Satellite 上,将登录委托设置为 true,以便用户可以使用 Open Liberty 协议进行身份验证:

    # hammer settings set --name authorize_login_delegation --value true
    Copy to Clipboard Toggle word wrap
  2. 设置登录委托注销 URL:

    # hammer settings set --name login_delegation_logout_url \
    --value https://satellite.example.com/users/extlogout
    Copy to Clipboard Toggle word wrap
  3. 在 Red Hat Single Sign-On 上为编码设置算法,例如 RS256

    # hammer settings set --name oidc_algorithm --value 'RS256'
    Copy to Clipboard Toggle word wrap
  4. 打开 RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration URL,并记录这些值来填充以下步骤中的选项。
  5. 在 Openö 使用者中为hammer 客户端添加值:

    # hammer settings set --name oidc_audience \
    --value "['satellite.example.com-hammer-openidc']"
    Copy to Clipboard Toggle word wrap
    注意

    如果您在 Satellite 中注册了多个 Red Hat Single Sign-On 客户端,请确保附加阵列中的所有使用者。例如:

    # hammer settings set --name oidc_audience \
    --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
    Copy to Clipboard Toggle word wrap
  6. 为 Open114 签发者设置值:

    # hammer settings set --name oidc_issuer \
    --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
    Copy to Clipboard Toggle word wrap
  7. 设置 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"
    Copy to Clipboard Toggle word wrap
  8. 检索 Red Hat Single Sign-On 身份验证源的 ID:

    # hammer auth-source external list
    Copy to Clipboard Toggle word wrap
  9. 设置位置和机构:

    # hammer auth-source external update --id Authentication Source ID \
    --location-ids Location ID --organization-ids Organization ID
    Copy to Clipboard Toggle word wrap

使用这个流程将 Satellite 配置为使用 Red Hat Single Sign-On 作为 OpenID 供应商,通过基于时间的一次性密码(TOTP)进行外部身份验证。

流程

  1. 在 Red Hat Single Sign-On Web UI 中,导航到 Satellite 域。
  2. 导航到 Authentication,然后单击 OTP Policy 选项卡。
  3. 确保 支持的 Applications 字段包含 FreeOTP 或 Google Authenticator。
  4. 配置 OTP 设置以满足您的要求。
  5. 可选:如果要将 TOTP 身份验证用作所有用户的默认身份验证方法,请点 Flows 选项卡,并在 OTP Form 设置右侧选择 REQUIRED
  6. Required Actions 选项卡。
  7. Configure OTP 行右侧,选中 Default Action 复选框。

使用 Red Hat Single Sign-On TOTP 身份验证登录到 Satellite Web UI。

流程

  1. 登录到 Satellite,Satellite 会重定向到 Red Hat Single Sign-On 登录屏幕。
  2. 输入您的用户名和密码,然后单击 Log In
  3. 第一次尝试登录,Red Hat Single Sign-On 请求通过扫描 barcode 并输入 pin 来配置客户端。
  4. 配置客户端并输入有效的 PIN 后,Red Hat Single Sign-On 会将您重定向到 Satellite 并登录。

14.9.7. 使用红帽单点登录登录到 Satellite CLI

使用这个流程使用代码授权类型向 Satellite CLI 进行身份验证。

流程

  1. 要使用代码授权类型向 Satellite CLI 进行身份验证,请输入以下命令:

    # hammer auth login oauth \
    --two-factor \
    --oidc-token-endpoint 'https://RHSSO.example.com/auth/realms/ssl-realm/protocol/openid-connect/token' \
    --oidc-authorization-endpoint 'https://RHSSO.example.com/auth' \
    --oidc-client-id 'satellite.example.com-foreman-openidc' \
    --oidc-redirect-uri urn:ietf:wg:oauth:2.0:oob
    Copy to Clipboard Toggle word wrap

    该命令会提示您输入成功代码。

  2. 要检索成功代码,请导航到命令返回的 URL 并提供所需信息。
  3. 复制 Web UI 返回的成功代码。
  4. hammer auth login oauth 命令提示符中,输入成功代码来向 Satellite CLI 进行身份验证。

14.9.8. 为红帽单点登录身份验证配置组映射

要实施基于角色的访问控制(RBAC),请在 Satellite 中创建组,为该组分配一个角色,然后将 Active Directory 组映射到 Satellite 组。因此,红帽单点登录中给定组中的任何人都在对应的 Satellite 组下登录。本例配置 Active Directory 中 Satellite-admin 用户组的用户,以对 Satellite 具有管理员特权的用户进行身份验证。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > User Groups,然后点 Create User Group 按钮。
  2. Name 字段中输入用户组的名称。名称不应与 Active Directory 中相同。
  3. 不要将用户和用户组添加到右侧列。点 Roles 选项卡。
  4. 选中 Administer 复选框。
  5. External Groups 选项卡。
  6. 单击 Add external user group
  7. Name 字段中输入 Active Directory 组的名称。
  8. 从列表中选择 EXTERNAL
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat