5.7. Dex を使用した Argo CD の SSO の設定

Red Hat OpenShift GitOps Operator がインストールされると、Argo CD は admin パーミッションを持つユーザーを自動的に作成します。複数のユーザーを管理するために、クラスター管理者は Argo CD を使用して、シングルサインオン (SSO) を設定できます。

5.7.1. Dex OpenShift OAuth コネクターの有効化

Dex は、プラットフォームが提供する OAuth サーバーを確認して、OpenShift 内で定義されたユーザーおよびグループを使用します。以下の例は、Dex のプロパティーと設定例を紹介しています。

apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: example-argocd
  labels:
    example: openshift-oauth
spec:
  dex:
    openShiftOAuth: true 1
    groups:2
     - default
  rbac:3
    defaultPolicy: 'role:readonly'
    policy: |
      g, cluster-admins, role:admin
    scopes: '[groups]'
1
openShiftOAuth プロパティーは、値が true に設定されている場合に、組み込み OpenShift OAuth サーバーを自動的に設定するように Operator を トリガーします。
2
groups プロパティーは、groups 一覧の 1 つのグループまたはすべてのグループにユーザーを割り当てます。
3
RBAC ポリシープロパティーは、Argo CD クラスターの管理者ロールを OpenShift cluster-admins グループのユーザーに割り当てます。

5.7.1.1. 特定のロールへのユーザーのマッピング

Argo CD は、直接の ClusterRoleBinding ロールがある場合は、ユーザーを特定のロールにマップできません。OpenShift 経由で SSO の role:admin としてロールを手動で変更できます。

手順

  1. cluster-admins という名前のグループを作成します。

    $ oc adm groups new cluster-admins
  2. ユーザーをグループに追加します。

    $ oc adm groups add-users cluster-admins USER
  3. cluster-admin ClusterRole をグループに適用します。

    $ oc adm policy add-cluster-role-to-group cluster-admin cluster-admins

5.7.2. Dex の無効化

Dex は、Operator によって作成されるすべての Argo CD インスタンスにデフォルトでインストールされます。Dex を無効にすることができます。

手順

  • Operator の YAML リソースで、環境変数 DISABLE_DEX を true に設定します。

      spec:
      config:
        env:
        - name: DISABLE_DEX
          value: "true"