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 :
-
Créez un fichier
htpasswd
pour stocker les informations relatives à l'utilisateur et au mot de passe. -
Créer un secret pour représenter le fichier
htpasswd
. - Définir une ressource fournisseur d'identité htpasswd qui référence le secret.
- 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.
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 paquetagehttpd-tools
.
Procédure
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
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
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
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éehtpasswd
, comme indiqué dans la commande ci-dessus.
AstuceVous 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
Ressources complémentaires
-
Voir Paramètres du fournisseur d'identité pour des informations sur les paramètres, tels que
mappingMethod
, qui sont communs à tous les fournisseurs d'identité.
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
Appliquer le CR défini :
$ oc apply -f </path/to/CR>
NoteSi 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.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>
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 paquetagehttpd-tools
. - Vous avez des privilèges d'administrateur de cluster.
Procédure
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
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>
Remplacez l'objet
htpass-secret
Secret
par les utilisateurs mis à jour dans le fichierusers.htpasswd
:$ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd --dry-run=client -o yaml -n openshift-config | oc replace -f -
AstuceVous 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>
Si vous avez supprimé un ou plusieurs utilisateurs, vous devez également supprimer les ressources existantes pour chaque utilisateur.
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é.
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
-
Naviguez jusqu'à Administration
Cluster Settings. - Sous l'onglet Configuration, cliquez sur OAuth.
- Dans la section Identity Providers, sélectionnez votre fournisseur d'identité dans le menu déroulant Add.
Vous pouvez spécifier plusieurs IDP via la console web sans écraser les IDP existants.