5.13. Keycloak を使用した Argo CD の SSO の設定


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

前提条件

  • Red Hat SSO がクラスターにインストールされている。
  • Red Hat OpenShift GitOps Operator がクラスターにインストールされます。
  • Argo CD がクラスターにインストールされている。

5.13.1. Keycloak での新規クライアントの設定

Dex は、Operator によって作成されるすべての Argo CD インスタンスにデフォルトでインストールされます。ただし、Dex 設定を削除し、代わりに Keycloak を追加して OpenShift 認証情報を使用して Argo CD にログインすることができます。Keycloak は Argo CD と OpenShift 間のアイデンティティーブローカーとして機能します。

手順

Keycloak を設定するには、以下の手順に従います。

  1. Argo CD カスタムリソース (CR) から .spec.sso.dex パラメーターを削除して Dex 設定を削除し、CR を保存します。

    dex:
        openShiftOAuth: true
        resources:
          limits:
            cpu:
            memory:
          requests:
            cpu:
            memory:
  2. Argo CD CR で provider パラメーターの値を keycloak に設定します。
  3. 次のいずれかの手順を実行して、Keycloak を設定します。

    • 安全な接続のために、次の例に示すように rootCA パラメーターの値を設定します。

      apiVersion: argoproj.io/v1alpha1
      kind: ArgoCD
      metadata:
        name: example-argocd
        labels:
          example: basic
      spec:
        sso:
          provider: keycloak
          keycloak:
            rootCA: "<PEM-encoded-root-certificate>" 1
        server:
          route:
            enabled: true
      1
      Keycloak の TLS 証明書を検証するために使用されるカスタム証明書。

      Operator は .spec.keycloak.rootCA パラメーターの変更を調整し、argocd-cm 設定マップの PEM エンコードされたルート証明書で oidc.config パラメーターを更新します。

    • 安全でない接続の場合、rootCA パラメーターの値を空のままにして、以下に示すように oidc.tls.insecure.skip.verify パラメーターを使用します。

      apiVersion: argoproj.io/v1alpha1
      kind: ArgoCD
      metadata:
        name: example-argocd
        labels:
          example: basic
      spec:
        extraConfig:
          oidc.tls.insecure.skip.verify: "true"
        sso:
          provider: keycloak
          keycloak:
            rootCA: ""
注記

Keycloak インスタンスのインストールおよび実行には、2 - 3 分かかります。

5.13.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
  2. 環境変数としてユーザー名とパスワードを保存する Keycloak Pod 名を取得します。

    $ oc -n argocd get pods
    
    NAME                      READY   STATUS           RESTARTS   AGE
    keycloak-1-2sjcl           1/1    Running            0        45m
    1. Keycloak ユーザー名を取得します。

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_USERNAME
      
      SSO_ADMIN_USERNAME=<username>
    2. Keycloak パスワードを取得します。

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_PASSWORD
      
      SSO_ADMIN_PASSWORD=<password>
  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

5.13.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
注記

この方法を使用して作成した Keycloak アプリケーションは、現在永続的ではありません。Argo CD Keycloak レルムで作成された追加の設定は、サーバーの再起動時に削除されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.