5.10. 使用 Keycloak 为 Argo CD 配置 SSO


安装 Red Hat OpenShift GitOps Operator 后,Argo CD 会自动创建一个具有 admin 权限的用户。要管理多个用户,集群管理员可以使用 Argo CD 来配置 Single Sign-On(SSO)。

先决条件

  • 在集群中安装了 Red Hat SSO。
  • 在集群中安装了 Argo CD。

5.10.1. 在 Keycloak 中配置新客户端

对于 Operator 创建的所有 Argo CD 实例,默认安装 Dex。但是,您可以删除 Dex 配置并添加 Keycloak,以使用 OpenShift 凭证登录到 Argo CD。Keycloak 作为 Argo CD 和 OpenShift 之间的身份代理。

流程

要配置 Keycloak,请按照以下步骤执行:

  1. 通过从 Argo CD 自定义资源(CR)中删除以下部分来删除 Dex 配置,并保存 CR:

    dex:
        openShiftOAuth: true
        resources:
          limits:
            cpu:
            memory:
          requests:
            cpu:
            memory:
    Copy to Clipboard Toggle word wrap
  2. 通过编辑 Argo CD CR 配置 Keycloak,并将 provider 参数的值更新为 keycloak。例如:

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: basic
    spec:
      sso:
        provider: keycloak
      server:
        route:
         enabled: true
    Copy to Clipboard Toggle word wrap
注意

Keycloak 实例需要 2-3 分钟来安装和运行。

5.10.2. 登录到 Keycloak

登录到 Keycloak 控制台以管理身份或角色,并定义分配给不同角色的权限。

先决条件

  • 删除 Dex 的默认配置。
  • Argo CD CR 必须配置为使用 Keycloak SSO 供应商。

流程

  1. 获取用于登录的 Keycloak 路由 URL:

    $ oc -n argocd get route keycloak
    
    NAME        HOST/PORT                                                        PATH   SERVICES   PORT    TERMINATION   WILDCARD
    keycloak    keycloak-default.apps.ci-ln-******.origin-ci-int-aws.dev.**.com         keycloak   <all>    reencrypt     None
    Copy to Clipboard Toggle word wrap
  2. 获取将用户名和密码存储为环境变量的 Keycloak pod 名称:

    $ oc -n argocd get pods
    
    NAME                      READY   STATUS           RESTARTS   AGE
    keycloak-1-2sjcl           1/1    Running            0        45m
    Copy to Clipboard Toggle word wrap
    1. 获取 Keycloak 用户名:

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_USERNAME
      
      SSO_ADMIN_USERNAME=Cqid54Ih
      Copy to Clipboard Toggle word wrap
    2. 获取 Keycloak 密码:

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_PASSWORD
      
      SSO_ADMIN_PASSWORD=GVXxHifH
      Copy to Clipboard Toggle word wrap
  3. 在登录页面上,点 LOG IN VIA KEYCLOAK

    注意

    您只能在 Keycloak 实例就绪后看到 LOGIN VIA KEYCLOAK 选项。

  4. Login with OpenShift

    注意

    不支持使用 kubeadmin 登录。

  5. 输入要登录的 OpenShift 凭据。
  6. 可选: 默认情况下,登录到 Argo CD 的任何用户都具有只读访问权限。您可以通过更新 argocd-rbac-cm 配置映射来管理用户级别访问权限:

    policy.csv:
    <name>, <email>, role:admin
    Copy to Clipboard Toggle word wrap

5.10.3. 卸载 Keycloak

您可以通过从 Argo CD 自定义资源(CR)文件中删除 SSO 字段来删除 Keycloak 资源及其相关配置。删除 SSO 字段后,文件中的值类似如下:

  apiVersion: argoproj.io/v1alpha1
  kind: ArgoCD
  metadata:
    name: example-argocd
    labels:
      example: basic
  spec:
    server:
      route:
       enabled: true
Copy to Clipboard Toggle word wrap
注意

使用此方法创建的 Keycloak 应用程序当前不是持久性。在服务器重启时,在 Argo CD Keycloak 域中创建的其他配置会被删除。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat