4.11. Configuration du SSO pour Argo CD à l'aide de Keycloak


Après l'installation de Red Hat OpenShift GitOps Operator, Argo CD crée automatiquement un utilisateur avec les permissions admin. Pour gérer plusieurs utilisateurs, les administrateurs de cluster peuvent utiliser Argo CD pour configurer l'authentification unique (SSO).

Conditions préalables

  • Red Hat SSO est installé sur le cluster.
  • Red Hat OpenShift GitOps Operator est installé sur le cluster.
  • Le CD Argo est installé sur le cluster.

4.11.1. Configuration d'un nouveau client dans Keycloak

Dex est installé par défaut pour toutes les instances Argo CD créées par l'Opérateur. Cependant, vous pouvez supprimer la configuration Dex et ajouter Keycloak à la place pour vous connecter à Argo CD en utilisant vos informations d'identification OpenShift. Keycloak agit comme un courtier d'identité entre Argo CD et OpenShift.

Procédure

Pour configurer Keycloak, procédez comme suit :

  1. Supprimer la configuration Dex en supprimant le paramètre .spec.sso.dex de la ressource personnalisée (CR) Argo CD, et enregistrer la CR :

    dex:
        openShiftOAuth: true
        resources:
          limits:
            cpu:
            memory:
          requests:
            cpu:
            memory:
    Copy to Clipboard Toggle word wrap
  2. Réglez la valeur du paramètre provider sur keycloak dans l'Argo CD CR.
  3. Configurez Keycloak en effectuant l'une des étapes suivantes :

    • Pour une connexion sécurisée, définissez la valeur du paramètre rootCA comme indiqué dans l'exemple suivant :

      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
      Copy to Clipboard Toggle word wrap
      1
      Un certificat personnalisé utilisé pour vérifier le certificat TLS du Keycloak.

      L'opérateur rapproche les modifications du paramètre .spec.keycloak.rootCA et met à jour le paramètre oidc.config avec le certificat racine codé PEM dans la carte de configuration argocd-cm.

    • Pour une connexion non sécurisée, laissez la valeur du paramètre rootCA vide et utilisez le paramètre oidc.tls.insecure.skip.verify comme indiqué ci-dessous :

      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: ""
      Copy to Clipboard Toggle word wrap
Note

L'instance de Keycloak s'installe et fonctionne en 2 à 3 minutes.

4.11.2. Se connecter à Keycloak

Connectez-vous à la console Keycloak pour gérer les identités ou les rôles et définir les permissions attribuées aux différents rôles.

Conditions préalables

  • La configuration par défaut de Dex est supprimée.
  • Votre Argo CD CR doit être configuré pour utiliser le fournisseur SSO Keycloak.

Procédure

  1. Obtenir l'URL de la route Keycloak pour la connexion :

    $ 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. Obtenir le nom du pod Keycloak qui stocke le nom d'utilisateur et le mot de passe en tant que variables d'environnement :

    $ 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. Obtenir le nom d'utilisateur de Keycloak :

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_USERNAME
      
      SSO_ADMIN_USERNAME=Cqid54Ih
      Copy to Clipboard Toggle word wrap
    2. Obtenir le mot de passe Keycloak :

      $ oc -n argocd exec keycloak-1-2sjcl -- "env" | grep SSO_ADMIN_PASSWORD
      
      SSO_ADMIN_PASSWORD=GVXxHifH
      Copy to Clipboard Toggle word wrap
  3. Sur la page de connexion, cliquez sur LOG IN VIA KEYCLOAK.

    Note

    L'option LOGIN VIA KEYCLOAK n'apparaît qu'une fois que l'instance de Keycloak est prête.

  4. Cliquez sur Login with OpenShift.

    Note

    La connexion à l'aide de kubeadmin n'est pas prise en charge.

  5. Saisissez les informations d'identification OpenShift pour vous connecter.
  6. Optionnel : Par défaut, tout utilisateur connecté à Argo CD a un accès en lecture seule. Vous pouvez gérer l'accès au niveau de l'utilisateur en mettant à jour la carte de configuration argocd-rbac-cm:

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

4.11.3. Désinstallation de Keycloak

Vous pouvez supprimer les ressources Keycloak et les configurations correspondantes en supprimant le champ SSO du fichier de ressources personnalisées (CR) du CD Argo. Une fois le champ SSO supprimé, les valeurs du fichier ressemblent à ce qui suit :

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

Une application Keycloak créée à l'aide de cette méthode n'est actuellement pas persistante. Les configurations supplémentaires créées dans le domaine Keycloak d'Argo CD sont supprimées lorsque le serveur redémarre.

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat