OpenShift 4 - 配置基于 Red Hat SSO 的 Identity Providers(附视频)

OpenShift 4.x HOL教程汇总
文本已在 OpenShift 4.15 + RHSSO 7.6 环境中进行验证。

安装Red Hat SSO环境

用模板安装 Red Hat SSO

  1. 用集群管理员登录,创建一个名为 rhsso 的项目。
  2. 进入 OpenShift 的开发者视图的“添加”菜单,然后点击下图中“所有服务”区域。
    在这里插入图片描述
  3. 在 “类型” 中选择 “模板”,然后查找 Single Sign-On 关键字,在找到的结果中进入“Red Hat Single Sign-On 7.6 on OpenJDK + PostgreSQL (Persistent)”。
    在这里插入图片描述
  4. 在安装提示中点击 “实例化模板”,然后将 RH-SSO Administrator Username 和 RH-SSO Administrator Password 都设置为 admin,然后点击 “创建”。
  5. 当 Red Hat Single Sign-On 模板安装完后,在拓扑页面中可看到 sso 应用和 sso-postgresql 数据库为以下状态。
    在这里插入图片描述

用 Operator 安装Red Hat SSO

  1. 在 OperatorHub 中找到Red Hat Single Sign-On Operator,然后使用默认配置将其安装到 rhsso 项目中。
  2. 在 rhsso 项目中用以下配置创建一个 Keycloak 对象,完成后有下图部署的资源。
apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
  name: example-sso
  labels:
    app: sso
  namespace: rhsso
spec:
  instances: 1
  externalAccess:
    enabled: True

在这里插入图片描述
3. 执行以下命令找到管理员的登录名和密码。

oc get secret credential-example-sso -n rhsso --template={{.data.ADMIN_USERNAME}} | base64 -d
oc get secret credential-example-sso -n rhsso --template={{.data.ADMIN_PASSWORD}} | base64 -d

配置 Red Hat SSO

注意:以下说明使用的是上面 “用模板安装Red Hat SSO” 的安装过程。

创建 Realm

  1. 通过 Route 进入 Red Hat SINGLE SIGN ON 的欢迎页面。可以将 Route 的地址视为“keycloak-rhsso.<base_domain>”格式。
  2. 然后点击 Administration Console 链接就来到登录页面,用 admin/admin 登录。
  3. 在菜单区中点击Master右侧的下拉,然后点击Add realm。
    在这里插入图片描述
  4. 在 Add realm 界面中设置 Name 为 OpenShift,然后点击 Create 按钮。
    在这里插入图片描述
  5. 此时页面会显示新建的 OpenShift Realm 的 General 信息,然后点击 Endpoints 后面框中的 OpenID Endpoint Configuration 链接。
    在这里插入图片描述
  6. 在新弹出的页面中找到 issuer 后面的字符串 “https://keycloak-rhsso.<base_domain>/auth/realms/OpenShift”,这就是后面在配置 Identity Providers 会用到的 Issuer URL
    在这里插入图片描述

创建用户

  1. 点击左侧菜单中的 Users,然后在页面右侧找到 Add user 按钮点击进入。
  2. 在 Add user 页面中将 Username 设为 test-user,然后点击 Save 按钮。
  3. 此时进入 Credentials 标签,先设置 test-user 用户对应的密码,然后关闭 Temporary 选项,最后点击 Set Password 按钮,并在弹出窗口中确认修改密码。
    在这里插入图片描述

创建Client

  1. 通过左侧菜单进入 Clients,然后在 Clients 页面中点击右侧的 Create 按钮。
  2. 在 Add Client 界面中设置 Client ID 为 openshift-demo,然后点击 Save。
    在这里插入图片描述
  3. 在 openshift-demo 的 Settings 页面中先将 Access Type 改为 confendial,再将 Valid Redirect URIs 设为 https://oauth-openshift.<base_domain>/* ,例如 https://oauth-openshift.apps.cluster-g2gxv.g2gxv.sandbox1416.opentlc.com/*,最后 Save 按钮。
    注意:也可以为 Valid Redirect URIs 使用以下地址:https://oauth-openshift.<base_domain>/oauth2callback/<idp_provider_name>。
  4. 此时会在 openshift-demo 的配置页面中出现一个新的 Credentials 标签。进入 Credentials 标签,然后复制Secret后面的字符串。
    在这里插入图片描述

为 OpenShift 创建和配置 Identity Providers

配置基于 Red Hat SSO 的 Identity Provider

  1. 进入 OpenShift 的 Administration 视图,然后点击进入“集群设置” 菜单。
  2. 在 “集群设置” 页面中进入“配置” 标签,然后在列表找到 OAuth 链接进入即可。
  3. 在以下界面中点击 “添加” 下拉,然后选择 “OpenID 连接”。
    在这里插入图片描述
  4. 在 “添加身份供应商:OpenID Connect” 配置界面中为 “客户端 ID” 设为以前在 Red Hat SSO 中创建的 openshift-demo;将 “客户端Secret” 设为以前复制的 Secret 字符串;将 “Issurer URL” 设为以前找到的 issuer 字符串 “https://keycloak-rhsso.apps.cluster-g2gxv.g2gxv.sandbox1416.opentlc.com/auth/realms/OpenShift”。
    在这里插入图片描述
  5. 然后点击 “添加” 按钮。
    6 . 在集群设置页面的 “集群 Operator” 中确认 autientication 更新后的状态是 Available。
    在这里插入图片描述

排除 certificate signed by unknow authority 错误

如果 authentication Opeator 的状态是 Degraded,且详情页面中出现 certificate signed by unknow authority 错误提示,需执行以下步骤:
在这里插入图片描述

  1. 用集群管理员进入 OpenShift 的 Administrator 视图,然后找到名为 openshift-ingress-operator 的项目,通过左侧菜单进入该项目的Workloads -> Secrets。
  2. 在 Secret 页面中找到 router-ca 一行,然后点击进入。
  3. 在名为 router-ca 的配置页面中的 “数据” 区域复制 tls.crt 下面的字符串,然后保存到名为 route.ca.crt 的文本文件中。
  4. “添加身份供应商:OpenID Connect” 配置界面中为 “CA 文件” 加载前面保存的 route.ca.crt 文件中的内容。
    在这里插入图片描述

测试验证

  1. 退出 OpenShift 控制台,然后重新登录 OpenShift 控制台。确认此时登录页面已经显示出 2 个 Identity Provider。点击下图中的 openid。
    注意:新的 Identity Provider 为了生效需要运行一些相关资源,因此第一次需要一点时间初始化。
    在这里插入图片描述
  2. 用 test-user 和对应的密码登录。
    在这里插入图片描述
  3. 查看 testuser 下的 OpenShift 控制台。由于是新建用户,所以看不到项目。
  4. 重新使用 passwd_provider 和集群管理员身份登录 OpenShift 控制台。然后进入“用户管理 -> 用户” 菜单,确认可以看到我们在 Red Hat SSO 中创建的 test-user 用户。
    在这里插入图片描述

演示视频

视频

参考

https://medium.com/keycloak/using-keycloak-identity-provider-to-secure-openshift-f929a7a0f7f1
https://shanna-chan.blog/2021/09/25/argocd-sso-set-up/
https://www.youtube.com/watch?v=2oOv3DKJjlQ&ab_channel=SteveKonish
https://cloud.redhat.com/blog/openid-connect-authentication-in-to-openshift-using-red-hat-single-sign-on
https://docs.openshift.com/container-platform/4.10/authentication/identity_providers/configuring-github-identity-provider.html
https://github.com/rhthsa/RHSSO-Demo/blob/main/docs/0.Demo.md
https://github.com/keycloak/keycloak-quickstarts/blob/latest/docs/getting-started.md

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值