搜索

5.9. 使用红帽单点登录身份验证配置 Satellite

download PDF

使用本节将 Satellite 配置为使用红帽单点登录作为外部身份验证的 OpenID 提供程序。

5.9.1. 使用红帽单点登录身份验证配置 Satellite 的先决条件

在使用 Red Hat Single Sign-On 外部身份验证配置 Satellite 前,请确保满足以下要求:

  • 使用 HTTPS 而不是 HTTP 的 Red Hat Single Sign-On 服务器的工作安装。
  • 具有 admin 权限的 Red Hat Single Sign-On 帐户。
  • 在红帽单点登录中创建的 Satellite 用户帐户的域。
  • 如果证书或 CA 是自签名的,请确保它们被添加到最终用户证书信任存储中。
  • 导入或添加到 Red Hat Single Sign-On 的用户。

    如果您配置了现有用户数据库,如 LDAP 或 Kerberos,您可以通过配置用户联邦来从其中导入用户。如需更多信息,请参阅 Red Hat Single Sign-On Server Administration Guide 中的 User Storage Federation

    如果您没有配置现有用户数据库,您可以在 Red Hat Single Sign-On 中手动创建用户。如需更多信息 ,请参阅 红帽单点登录服务器管理指南中的创建新用户

5.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:

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

您必须决定希望用户提前进行身份验证,因为这两种方法都需要将不同的 Satellite 客户端注册到 Red Hat Single Sign-On 并进行配置。在 Red Hat Single Sign-On 中注册和配置 Satellite 客户端的步骤在流程中区分。

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

流程

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

    # satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install python3-lxml
  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

      出现提示时,输入 管理帐户的密码。此命令在 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

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

  3. 重启 httpd 服务:

    # systemctl restart httpd

5.9.3. 在 Red Hat Single Sign-On 中配置 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 列表中选择 confidential
    • 如果您希望用户使用 CLI 向 Satellite 进行身份验证,请从 Access Type 列表中选择 public
  3. Valid redirect URI 字段中,添加有效的重定向 URI。

    • 如果您希望用户使用 Satellite Web UI 向 Satellite 进行身份验证,请在现有 URI 下的空白字段中输入 URI https://satellite.example.com/users/extlogin。请注意,您必须在 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
    • 如果您希望用户使用 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 添加受众映射程序。
  6. Name 字段中输入 audience mapper 的名称。
  7. Mapper Type 列表中,选择 Audience
  8. Included Client Audience 列表中,选择 Satellite 客户端。
  9. 点击 Save
  10. Create 添加组映射器,以便您可以根据组成员资格在 Satellite 中指定授权。
  11. Name 字段中输入组映射程序的名称。
  12. Mapper Type 列表中,选择 Group Membership
  13. Token Claim Name 字段中输入组
  14. Full group path 设置为 OFF。
  15. 点击 Save

5.9.4. 为红帽单点登录身份验证配置 Satellite 设置

使用本节通过 Satellite Web UI 或 CLI 为红帽单点登录身份验证配置 Satellite。

5.9.4.1. 使用 Web UI 为红帽单点登录身份验证配置 Satellite 设置

使用 Satellite Web UI 为 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 设置设为 confidential

流程

  1. 在 Satellite Web UI 中,进入到 Administer > Settings,然后点击 Authentication 选项卡。
  2. 找到 Authorize login delegation 行,然后在 Value 列中将值设为 Yes
  3. 找到 Authorize login delegation auth source user autocreate 行,并在 Value 列中将值设为 External
  4. 找到 Login delegation logout 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. 在 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

5.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

流程

  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 Token (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

5.9.5. 使用红帽单点登录登录到 Satellite Web UI

使用这个流程,使用红帽单点登录登录到 Satellite Web UI。

流程

  • 在您的浏览器中,登录 Satellite 并输入您的凭据。

5.9.6. 使用红帽单点登录登录到 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 登录 oauth 的命令提示符中,输入用于向 Satellite CLI 进行身份验证的成功代码。

5.9.7. 为 Red Hat Single Sign-On 身份验证配置组映射

另外,为了实施基于角色的访问控制(RBAC),请在 Satellite 中创建一个组,为该组分配一个角色,然后将 Active Directory 组映射到 Satellite 组。因此,Red Hat Single Sign-On 中给定组中的任何人都会在对应的 Satellite 组下登录。本例在 Active Directory 中配置 Satellite-admin 用户组的用户,以用户身份在 Satellite 上进行身份验证。

流程

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.