Chapitre 7. Configuration des fournisseurs d'identité


7.1. Configuration d'un fournisseur d'identité htpasswd

Configurez le fournisseur d'identité htpasswd pour permettre aux utilisateurs de se connecter à OpenShift Container Platform avec des informations d'identification provenant d'un fichier htpasswd.

Pour définir un fournisseur d'identité htpasswd, effectuez les tâches suivantes :

  1. Créez un fichier htpasswd pour stocker les informations relatives à l'utilisateur et au mot de passe.
  2. Créer un secret pour représenter le fichier htpasswd.
  3. Définir une ressource fournisseur d'identité htpasswd qui référence le secret.
  4. Appliquer la ressource à la configuration OAuth par défaut pour ajouter le fournisseur d'identité.

7.1.1. À propos des fournisseurs d'identité dans OpenShift Container Platform

Par défaut, seul un utilisateur kubeadmin existe sur votre cluster. Pour spécifier un fournisseur d'identité, vous devez créer une ressource personnalisée (CR) qui décrit ce fournisseur d'identité et l'ajouter au cluster.

Note

Les noms d'utilisateur OpenShift Container Platform contenant /, :, et % ne sont pas pris en charge.

7.1.2. A propos de l'authentification htpasswd

L'utilisation de l'authentification htpasswd dans OpenShift Container Platform vous permet d'identifier les utilisateurs sur la base d'un fichier htpasswd. Un fichier htpasswd est un fichier plat qui contient le nom d'utilisateur et le mot de passe haché de chaque utilisateur. Vous pouvez utiliser l'utilitaire htpasswd pour créer ce fichier.

7.1.3. Création du fichier htpasswd

Consultez l'une des sections suivantes pour savoir comment créer le fichier htpasswd :

7.1.3.1. Création d'un fichier htpasswd sous Linux

Pour utiliser le fournisseur d'identité htpasswd, vous devez générer un fichier plat contenant les noms d'utilisateur et les mots de passe de votre cluster à l'aide de la commande htpasswd.

Conditions préalables

  • Avoir accès à l'utilitaire htpasswd. Sur Red Hat Enterprise Linux, cet utilitaire est disponible en installant le paquetage httpd-tools.

Procédure

  1. Créez ou mettez à jour votre fichier plat avec un nom d'utilisateur et un mot de passe haché :

    $ htpasswd -c -B -b </path/to/users.htpasswd> <user_name> <password>

    La commande génère une version hachée du mot de passe.

    Par exemple :

    $ htpasswd -c -B -b users.htpasswd user1 MyPassword!

    Exemple de sortie

    Adding password for user user1

  2. Continuez à ajouter ou à mettre à jour les informations d'identification dans le fichier :

    $ htpasswd -B -b </path/to/users.htpasswd> <user_name> <password>

7.1.3.2. Création d'un fichier htpasswd sous Windows

Pour utiliser le fournisseur d'identité htpasswd, vous devez générer un fichier plat contenant les noms d'utilisateur et les mots de passe de votre cluster à l'aide de la commande htpasswd.

Conditions préalables

  • Avoir accès à htpasswd.exe. Ce fichier est inclus dans le répertoire \bin de nombreuses distributions d'Apache httpd.

Procédure

  1. Créez ou mettez à jour votre fichier plat avec un nom d'utilisateur et un mot de passe haché :

    > htpasswd.exe -c -B -b <\path\to\users.htpasswd> < nom_utilisateur> <mot_de_passe>

    La commande génère une version hachée du mot de passe.

    Par exemple :

    > htpasswd.exe -c -B -b users.htpasswd user1 MyPassword !

    Exemple de sortie

    Adding password for user user1

  2. Continuez à ajouter ou à mettre à jour les informations d'identification dans le fichier :

    > htpasswd.exe -b <\pathto\users.htpasswd> < nom_utilisateur> <mot_de_passe>

7.1.4. Création du secret htpasswd

Pour utiliser le fournisseur d'identité htpasswd, vous devez définir un secret contenant le fichier utilisateur htpasswd.

Conditions préalables

  • Créer un fichier htpasswd.

Procédure

  • Créez un objet Secret qui contient le fichier htpasswd users :

    $ oc create secret generic htpass-secret --from-file=htpasswd=<path_to_users.htpasswd> -n openshift-config 1
    1
    La clé secrète contenant le fichier des utilisateurs pour l'argument --from-file doit être nommée htpasswd, comme indiqué dans la commande ci-dessus.
    Astuce

    Vous pouvez également appliquer le code YAML suivant pour créer le secret :

    apiVersion: v1
    kind: Secret
    metadata:
      name: htpass-secret
      namespace: openshift-config
    type: Opaque
    data:
      htpasswd: <base64_encoded_htpasswd_file_contents>

7.1.5. Exemple de CR htpasswd

La ressource personnalisée (CR) suivante présente les paramètres et les valeurs acceptables pour un fournisseur d'identité htpasswd.

htpasswd CR

apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
  - name: my_htpasswd_provider 1
    mappingMethod: claim 2
    type: HTPasswd
    htpasswd:
      fileData:
        name: htpass-secret 3

1
Ce nom de fournisseur est préfixé aux noms d'utilisateurs du fournisseur pour former un nom d'identité.
2
Contrôle la manière dont les correspondances sont établies entre les identités de ce fournisseur et les objets User.
3
Un secret existant contenant un fichier généré à l'aide de htpasswd.

Ressources complémentaires

7.1.6. Ajouter un fournisseur d'identité à votre cluster

Après avoir installé votre cluster, ajoutez-y un fournisseur d'identité pour que vos utilisateurs puissent s'authentifier.

Conditions préalables

  • Créer un cluster OpenShift Container Platform.
  • Créez la ressource personnalisée (CR) pour vos fournisseurs d'identité.
  • Vous devez être connecté en tant qu'administrateur.

Procédure

  1. Appliquer le CR défini :

    $ oc apply -f </path/to/CR>
    Note

    Si un CR n'existe pas, oc apply crée un nouveau CR et peut déclencher l'avertissement suivant : Warning: oc apply should be used on resources created by either oc create --save-config or oc apply. Dans ce cas, vous pouvez ignorer cet avertissement.

  2. Connectez-vous au cluster en tant qu'utilisateur de votre fournisseur d'identité, en saisissant le mot de passe lorsque vous y êtes invité.

    $ oc login -u <nom d'utilisateur>
  3. Confirmez que l'utilisateur s'est connecté avec succès et affichez le nom de l'utilisateur.

    $ oc whoami

7.1.7. Mise à jour des utilisateurs d'un fournisseur d'identité htpasswd

Vous pouvez ajouter ou supprimer des utilisateurs d'un fournisseur d'identité htpasswd existant.

Conditions préalables

  • Vous avez créé un objet Secret qui contient le fichier utilisateur htpasswd. Cette procédure suppose qu'il est nommé htpass-secret.
  • Vous avez configuré un fournisseur d'identité htpasswd. Cette procédure suppose qu'il s'appelle my_htpasswd_provider.
  • Vous avez accès à l'utilitaire htpasswd. Sur Red Hat Enterprise Linux, cet utilitaire est disponible en installant le paquetage httpd-tools.
  • Vous avez des privilèges d'administrateur de cluster.

Procédure

  1. Récupérez le fichier htpasswd de l'objet htpass-secret Secret et enregistrez le fichier sur votre système de fichiers :

    $ oc get secret htpass-secret -ojsonpath={.data.htpasswd} -n openshift-config | base64 --decode > users.htpasswd
  2. Ajouter ou supprimer des utilisateurs du fichier users.htpasswd.

    • Pour ajouter un nouvel utilisateur :

      $ htpasswd -bB users.htpasswd <nom d'utilisateur> <mot de passe>

      Exemple de sortie

      Ajout d'un mot de passe pour l'utilisateur <nom d'utilisateur>

    • Pour supprimer un utilisateur existant :

      $ htpasswd -D users.htpasswd <username>

      Exemple de sortie

      Suppression du mot de passe de l'utilisateur <nom d'utilisateur>

  3. Remplacez l'objet htpass-secret Secret par les utilisateurs mis à jour dans le fichier users.htpasswd:

    $ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd --dry-run=client -o yaml -n openshift-config | oc replace -f -
    Astuce

    Vous pouvez également appliquer le YAML suivant pour remplacer le secret :

    apiVersion: v1
    kind: Secret
    metadata:
      name: htpass-secret
      namespace: openshift-config
    type: Opaque
    data:
      htpasswd: <base64_encoded_htpasswd_file_contents>
  4. Si vous avez supprimé un ou plusieurs utilisateurs, vous devez également supprimer les ressources existantes pour chaque utilisateur.

    1. Supprimer l'objet User:

      $ oc delete user <username>

      Exemple de sortie

      user.user.openshift.io "<username>" supprimé

      Veillez à supprimer l'utilisateur, sinon il pourra continuer à utiliser son jeton tant qu'il n'aura pas expiré.

    2. Supprimer l'objet Identity pour l'utilisateur :

      oc delete identity my_htpasswd_provider:<username> $ oc delete identity my_htpasswd_provider:<username>

      Exemple de sortie

      identity.user.openshift.io "my_htpasswd_provider:<username>" supprimé

7.1.8. Configuration des fournisseurs d'identité à l'aide de la console web

Configurez votre fournisseur d'identité (IDP) via la console web au lieu de l'interface CLI.

Conditions préalables

  • Vous devez être connecté à la console web en tant qu'administrateur de cluster.

Procédure

  1. Naviguez jusqu'à Administration Cluster Settings.
  2. Sous l'onglet Configuration, cliquez sur OAuth.
  3. Dans la section Identity Providers, sélectionnez votre fournisseur d'identité dans le menu déroulant Add.
Note

Vous pouvez spécifier plusieurs IDP via la console web sans écraser les IDP existants.

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.

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 leBlog 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.

© 2024 Red Hat, Inc.