Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cet article, vous utilisez Azure CLI pour configurer l’authentification Microsoft Entra pour un cluster Azure Red Hat OpenShift. Vous créez des variables utilisées dans les commandes qui créent une URL de OAuth retour, un enregistrement d'application et des secrets clients, et mettent à jour les autorisations de l'application.
Conditions préalables
- Un cluster Azure Red Hat OpenShift existant. Si vous n’avez pas de cluster, consultez créer un cluster.
- Azure CLI 2.30.0 ou version ultérieure installée sur votre ordinateur. Permet
az --versionde rechercher la version installée d’Azure CLI. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. Vous pouvez également utiliser Azure Cloud Shell avec Bash pour exécuter des commandes. - OpenShift CLI installé sur votre ordinateur ou dans votre Bash Cloud Shell. Pour plus d’informations, consultez Installer l’interface CLI OpenShift.
Créer des variables
Récupérez vos URL spécifiques au cluster utilisées pour configurer l’application Microsoft Entra.
Définissez les variables pour le groupe de ressources et le nom du cluster. Remplacez <resourceGroupName> par le nom de votre groupe de ressources et <aroClusterName> par le nom de votre cluster.
resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>
Créez les variables suivantes utilisées dans d’autres commandes pour effectuer les étapes décrites dans cet article.
domain=$(az aro show --resource-group $resourceGroup --name $aroCluster --query clusterProfile.domain --output tsv)
location=$(az aro show --resource-group $resourceGroup --name $aroCluster --query location --output tsv)
apiServer=$(az aro show --resource-group $resourceGroup --name $aroCluster --query apiserverProfile.url --output tsv)
webConsole=$(az aro show --resource-group $resourceGroup --name $aroCluster --query consoleProfile.url --output tsv)
Créez l’URL de rappel du OAuth cluster et stockez-la dans la variable oauthCallbackURL. L'entraID à la fin de l’URL de rappel OAuth doit correspondre au nom du OAuth fournisseur d’identité que vous créerez ultérieurement dans le fichier oidc.yaml.
Le format du fichier oauthCallbackURL dépend si vous utilisez un domaine personnalisé.
Si vous avez un domaine personnalisé tel que
contoso.com, exécutez la commande suivante.oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/entraIDSi vous n’utilisez pas de domaine personnalisé, il
$domains’agit d’une chaîne alphanumérique de huit caractères qui précède le$location.aroapp.io.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID
Créer une application Microsoft Entra pour l’authentification
Créez une application Microsoft Entra et définissez une clé secrète client pour l’application.
appId=$(az ad app create \
--display-name aro-auth \
--web-redirect-uris $oauthCallbackURL \
--query appId --output tsv)
clientSecret=$(az ad app credential reset --id $appId --query password --output tsv)
Les valeurs sont stockées dans des variables et clientSecret affiche un message console indiquant que la sortie de la commande contient des informations d'identification. La valeur est utilisée plus loin dans cet article et lorsque vous avez terminé, vous pouvez effacer la variable à l’aide de la clientSecret="" commande.
Pour plus d’informations sur les commandes permettant de créer l’application et les informations d’identification, consultez az ad app create and az ad app credential reset.
Récupérez l’ID de locataire de l’abonnement qui possède l’application.
tenantId=$(az account show --query tenantId --output tsv)
Créer un fichier manifeste pour définir les revendications facultatives à inclure dans le jeton d’ID
Les développeurs d’applications peuvent utiliser des revendications facultatives dans leurs applications Microsoft Entra pour spécifier les revendications qu’ils souhaitent dans les jetons envoyés à leur application.
Vous pouvez utiliser des revendications facultatives pour :
- Sélectionnez d’autres revendications à inclure dans des jetons pour votre application.
- Modifiez le comportement de certaines revendications renvoyées par Microsoft Entra ID sous forme de jetons.
- Ajouter et accéder à des revendications personnalisées pour votre application.
Vous configurez OpenShift pour utiliser la revendication email et basculer vers upn pour définir le nom d’utilisateur préféré en ajoutant le upn en tant que partie du jeton d'identité renvoyé par Microsoft Entra ID.
Créez un fichier manifest.json pour configurer l’application Microsoft Entra.
cat > manifest-test-file.json<< EOF
{
"idToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
}
]
}
EOF
Mettre à jour les optionalClaims de l’application Microsoft Entra avec un manifeste
Pour utiliser le fichier manifeste et mettre à jour l’application optionalClaims, exécutez la commande suivante.
az ad app update \
--id $appId \
--optional-claims @manifest.json
Mettre à jour les autorisations de l’étendue d’application Microsoft Entra
Pour pouvoir lire les informations utilisateur à partir de Microsoft Entra ID, nous devons définir les étendues appropriées.
Ajoutez l’autorisation de l’étendue Microsoft Graph User.Read pour activer la connexion et la lecture du profil utilisateur. Pour plus d’informations, consultez User.Read.
az ad app permission add \
--api 00000003-0000-0000-c000-000000000000 \
--api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope \
--id $appId
Vous pouvez ignorer le message pour accorder le consentement, sauf si vous êtes authentifié en tant qu’administrateur général pour cet ID Microsoft Entra. Les utilisateurs de domaine standard sont invités à accorder le consentement lorsqu’ils se connectent pour la première fois au cluster avec leurs informations d’identification Microsoft Entra.
Affecter des utilisateurs et des groupes au cluster (facultatif)
Les applications inscrites dans un locataire Microsoft Entra sont, par défaut, disponibles pour tous les utilisateurs du locataire qui parviennent à s’authentifier. Microsoft Entra ID permet aux développeurs et administrateurs de tenant (locataire) de restreindre une application à un ensemble spécifique d’utilisateurs ou de groupes de sécurité dans le tenant.
Suivez les instructions de la documentation Microsoft Entra pour restreindre une application Microsoft Entra à un ensemble d’utilisateurs.
Configurer l’authentification OpenShift OpenID
Récupérez les informations d’identification de kubeadmin. Exécutez la commande suivante pour rechercher le mot de passe de l’utilisateur kubeadmin.
kubeadminPassword=$(az aro list-credentials \
--name $aroCluster \
--resource-group $resourceGroup \
--query kubeadminPassword --output tsv)
Connectez-vous au serveur d’API du cluster OpenShift à l’aide de la commande suivante.
oc login $apiServer --username kubeadmin --password $kubeadminPassword
Créez un secret OpenShift pour stocker la clé secrète d’application Microsoft Entra.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$clientSecret
Créez un fichier oidc.yaml pour configurer l’authentification OpenShift OpenID sur l’ID Microsoft Entra.
cat > oidc.yaml<< EOF
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: entraID
mappingMethod: claim
type: OpenID
openID:
clientID: $appId
clientSecret:
name: openid-client-secret-azuread
extraScopes:
- email
- profile
extraAuthorizeParameters:
include_granted_scopes: "true"
claims:
preferredUsername:
- email
- upn
name:
- name
email:
- email
issuer: https://login.microsoftonline.com/$tenantId
EOF
Appliquez la configuration au cluster.
oc apply -f oidc.yaml
Vous obtenez une réponse comme l’exemple suivant.
oauth.config.openshift.io/cluster configured
Vérifier la connexion à l’aide de l’ID Microsoft Entra
Déconnectez-vous de la console web OpenShift et reconnectez-vous, et vous verrez une nouvelle option pour vous connecter avec entraID. Vous devrez peut-être attendre quelques minutes pour que l’option devienne disponible.