Chapitre 7. Configuration des fournisseurs d'identité
7.1. Configuration d'un fournisseur d'identité htpasswd Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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>
$ htpasswd -c -B -b </path/to/users.htpasswd> <user_name> <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande génère une version hachée du mot de passe.
Par exemple :
htpasswd -c -B -b users.htpasswd user1 MyPassword!
$ htpasswd -c -B -b users.htpasswd user1 MyPassword!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Adding password for user user1
Adding password for user user1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Continuez à ajouter ou à mettre à jour les informations d'identification dans le fichier :
htpasswd -B -b </path/to/users.htpasswd> <user_name> <password>
$ htpasswd -B -b </path/to/users.htpasswd> <user_name> <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3.2. Création d'un fichier htpasswd sous Windows Copier lienLien copié sur presse-papiers!
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>
> htpasswd.exe -c -B -b <\path\to\users.htpasswd> < nom_utilisateur> <mot_de_passe>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande génère une version hachée du mot de passe.
Par exemple :
> htpasswd.exe -c -B -b users.htpasswd user1 MyPassword !
> htpasswd.exe -c -B -b users.htpasswd user1 MyPassword !
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Adding password for user user1
Adding password for user user1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Continuez à ajouter ou à mettre à jour les informations d'identification dans le fichier :
> htpasswd.exe -b <\pathto\users.htpasswd> < nom_utilisateur> <mot_de_passe>
> htpasswd.exe -b <\pathto\users.htpasswd> < nom_utilisateur> <mot_de_passe>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.4. Création du secret htpasswd Copier lienLien copié sur presse-papiers!
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
$ oc create secret generic htpass-secret --from-file=htpasswd=<path_to_users.htpasswd> -n openshift-config
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.5. Exemple de CR htpasswd Copier lienLien copié sur presse-papiers!
La ressource personnalisée (CR) suivante présente les paramètres et les valeurs acceptables pour un fournisseur d'identité htpasswd.
htpasswd CR
7.1.6. Ajouter un fournisseur d'identité à votre cluster Copier lienLien copié sur presse-papiers!
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>
$ oc apply -f </path/to/CR>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
$ oc login -u <nom d'utilisateur>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirmez que l'utilisateur s'est connecté avec succès et affichez le nom de l'utilisateur.
oc whoami
$ oc whoami
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.7. Mise à jour des utilisateurs d'un fournisseur d'identité htpasswd Copier lienLien copié sur presse-papiers!
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
$ oc get secret htpass-secret -ojsonpath={.data.htpasswd} -n openshift-config | base64 --decode > users.htpasswd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajouter ou supprimer des utilisateurs du fichier
users.htpasswd
.Pour ajouter un nouvel utilisateur :
htpasswd -bB users.htpasswd <nom d'utilisateur> <mot de passe>
$ htpasswd -bB users.htpasswd <nom d'utilisateur> <mot de passe>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Ajout d'un mot de passe pour l'utilisateur <nom d'utilisateur>
Ajout d'un mot de passe pour l'utilisateur <nom d'utilisateur>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour supprimer un utilisateur existant :
htpasswd -D users.htpasswd <username>
$ htpasswd -D users.htpasswd <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Suppression du mot de passe de l'utilisateur <nom d'utilisateur>
Suppression du mot de passe de l'utilisateur <nom d'utilisateur>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 -
$ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd --dry-run=client -o yaml -n openshift-config | oc replace -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AstuceVous pouvez également appliquer le YAML suivant pour remplacer le secret :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
$ oc delete user <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
user.user.openshift.io "<username>" supprimé
user.user.openshift.io "<username>" supprimé
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
oc delete identity my_htpasswd_provider:<username> $ oc delete identity my_htpasswd_provider:<username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
identity.user.openshift.io "my_htpasswd_provider:<username>" supprimé
identity.user.openshift.io "my_htpasswd_provider:<username>" supprimé
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.8. Configuration des fournisseurs d'identité à l'aide de la console web Copier lienLien copié sur presse-papiers!
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.