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:

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

您必须决定用户提前验证,因为这两种方法都需要注册到 Red Hat Single Sign-On 并配置了不同的卫星客户端。在 Red Hat Single Sign-On 中注册和配置 Satellite 客户端的步骤可区分在过程中。

如果要使用身份验证方法并相应地配置这两个客户端,您也可以将两个不同的卫星客户端注册到 Red Hat Single Sign-On。

流程

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

    # satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
  2. 将 Satellite 注册到红帽单点登录作为客户端。请注意,您使用 Web UI 和 CLI 登录的注册过程有所不同。您可以将两个客户端注册到红帽单点登录,以便能够通过 Web UI 和 CLI 登录卫星。

    • 如果您希望用户使用 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

      在提示时输入 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"
    • 如果您希望用户通过 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

      在提示时输入 manage 帐户的密码。此命令会在 Red Hat Single Sign-On 中为 Satellite 创建客户端。

  3. 重启 httpd 服务:

    # systemctl restart httpd

13.8.3. 在 Red Hat Single Sign-On 中配置 Satellite 客户端

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

流程

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

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

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings,然后点 Authentication 选项卡。
  2. 找到 Authorize login delegation 行,然后在 Value 列中找到值设为 Yes
  3. 找到 Authorize login delegation auth source user autocreate row,在 Value 列中,将值设为 External
  4. 找到 登录委托注销 URL 行,在 Value 列中,将值设为 https://satellite.example.com/users/extlogout
  5. 找到 OIDC Algorithm 行,在 Value 列中,将 Red Hat Single Sign-On 上的编码的算法设置为 RS256
  6. 找到 OIDC Audience 行,在 Value 列中,将值设置为 Red Hat Single Sign-On 的客户端 ID。
  7. 找到 OIDC Issuer 行,在 Value 列中找到,将值设置为 https://RHSSO.example.com/auth/realms/Satellite_Realm
  8. 找到 OIDC JWKs URL 行,在 Value 列中,将值设置为 https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs
  9. 导航到 Administer > Authentication Sources,再点击 External
  10. 点击 Create LDAP Authentication Source 并选择 Red Hat Single Sign-On 服务器。
  11. 单击位置选项卡,再添加可以使用红帽单点登录身份验证来源的位置。
  12. 单击 Organizations 选项卡,再添加可以使用 Red Hat Single Sign-On 验证源的组织。
  13. 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

流程

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

    # hammer settings set --name authorize_login_delegation --value true
  2. 设置登录委托注销 URL:

    # hammer settings set --name login_delegation_logout_url \
    --value https://satellite.example.com/users/extlogout
  3. 在 Red Hat Single Sign-On 上设置编码的算法,如 RS256

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

    # hammer settings set --name oidc_audience \
    --value "['satellite.example.com-hammer-openidc']"
    注意

    如果您将多个 Red Hat Single Sign-On 客户端注册到 Satellite,请确保在阵列中附加所有受众。例如:

    # hammer settings set --name oidc_audience \
    --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
  6. 设置 Open IDC 签发者的值:

    # hammer settings set --name oidc_issuer \
    --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
  7. 设置 Open IDC Java Web 令牌(JWT)的值:

    # hammer settings set --name oidc_jwks_url \
    --value "RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs"
  8. 检索 Red Hat Single Sign-On 验证源的 ID:

    # hammer auth-source external list
  9. 设置位置和机构:

    # hammer auth-source external update --id Authentication Source ID \
    --location-ids Location ID --organization-ids Organization ID

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 进行身份验证。

流程

  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

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

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

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

另外,要实施基于角色的访问控制(RBAC),在 Satellite 中创建组,将角色分配给此组,然后将 Active Directory 组映射到 Satellite 组。因此,Red Hat Single Sign-On 中给定组中的任何人都登录在对应的 Satellite 组下。本例在 Active Directory 中配置 Satellite-admin 用户组的用户,以以具有卫星上具有管理员特权的用户进行身份验证。

流程

  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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.