Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel verwenden Sie Azure CLI, um die Microsoft Entra-Authentifizierung für einen Azure Red Hat OpenShift-Cluster einzurichten. Sie erstellen Variablen, die in Befehlen verwendet werden, die eine Rückruf-URL, eine OAuth Anwendungsregistrierung und einen geheimen Clientschlüssel erstellen und die Berechtigungen der Anwendung aktualisieren.
Voraussetzungen
- Ein vorhandener Azure Red Hat OpenShift-Cluster. Wenn Sie keinen Cluster haben, lesen Sie das Erstellen eines neuen Clusters.
- Azure CLI 2.30.0 oder höher auf Ihrem Computer installiert. Verwenden Sie
az --version, um die installierte Version von Azure CLI zu finden. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren. Sie können azure Cloud Shell auch mit Bash verwenden, um Befehle auszuführen. - OpenShift CLI auf Ihrem Computer oder in Ihrer Bash Cloud Shell installiert. Weitere Informationen finden Sie unter Installieren der OpenShift CLI.
Erstellen von Variablen
Rufen Sie ihre clusterspezifischen URLs ab, die zum Konfigurieren der Microsoft Entra-Anwendung verwendet werden.
Legen Sie die Variablen für den Namen der Ressourcengruppe und des Clusters fest. Ersetzen Sie <resourceGroupName> den Namen Ihrer Ressourcengruppe und <aroClusterName> den Namen Des Clusters.
resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>
Erstellen Sie die folgenden Variablen, die in anderen Befehlen verwendet werden, um die Schritte in diesem Artikel auszuführen.
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)
Erstellen Sie die Rückruf-URL des OAuth Clusters, und speichern Sie sie in der Variablen oauthCallbackURL. Das entraID Ende der OAuth Rückruf-URL muss mit dem Identitätsanbieternamen übereinstimmen, den OAuth Sie später in der Datei "oidc.yaml " erstellen.
Das Format der Datei oauthCallbackURL hängt davon ab, ob Sie eine benutzerdefinierte Domäne verwenden.
Wenn Sie über eine benutzerdefinierte Domäne wie
contoso.comverfügen, führen Sie den folgenden Befehl aus.oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/entraIDWenn Sie keine benutzerdefinierte Domäne verwenden, handelt es
$domainsich um eine achtstellige alphanumerische Zeichenfolge, die vor der$location.aroapp.ioZeichenfolge steht.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID
Erstellen einer Microsoft Entra-Anwendung für die Authentifizierung
Erstellen Sie eine Microsoft Entra-Anwendung, und legen Sie einen geheimen Clientschlüssel für die Anwendung fest.
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)
Die Werte werden in Variablen gespeichert und clientSecret zeigt eine Konsolenmeldung an, dass die Befehlsausgabe Anmeldeinformationen enthält. Der Wert wird weiter unten in diesem Artikel verwendet, und wenn Sie fertig sind, können Sie die Variable mit dem clientSecret="" Befehl löschen.
Weitere Informationen zu den Befehlen zum Erstellen der App und anmeldeinformationen finden Sie unter az ad app create and az ad app credential reset.
Rufen Sie die Mandanten-ID des Abonnements ab, das Besitzer der Anwendung ist.
tenantId=$(az account show --query tenantId --output tsv)
Erstellen einer Manifestdatei zum Definieren der optionalen Ansprüche, die im ID-Token enthalten sein sollen
Anwendungsentwickler können optionale Ansprüche in ihren Microsoft Entra-Anwendungen verwenden, um anzugeben, welche Ansprüche in Token vorhanden sein sollen, die an ihre Anwendungen gesendet werden.
Sie können optionale Ansprüche zu folgenden Zwecken verwenden:
- Wählen Sie andere Ansprüche aus, die in Token für Ihre Anwendung eingeschlossen werden sollen.
- Ändern des Verhaltens bestimmter Ansprüche, die von Microsoft Entra ID in Form von Token zurückgegeben werden.
- Benutzerdefinierte Ansprüche für Ihre Anwendung hinzufügen und darauf zugreifen.
Sie konfigurieren OpenShift, um den email Anspruch zu verwenden und auf den bevorzugten Benutzernamen zurückzugreifen upn , indem Sie den upn als Teil des von Microsoft Entra ID zurückgegebenen ID-Tokens hinzufügen.
Erstellen Sie eine manifest.json-Datei zum Konfigurieren der Microsoft Entra-Anwendung.
cat > manifest-test-file.json<< EOF
{
"idToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
}
]
}
EOF
Aktualisieren der optionalClaims der Microsoft Entra-Anwendung mit einem Manifest
Führen Sie den folgenden Befehl aus, um die Manifestdatei zu verwenden und die Anwendung zu optionalClaimsaktualisieren.
az ad app update \
--id $appId \
--optional-claims @manifest.json
Aktualisieren der Microsoft Entra-Anwendungsbereichsberechtigungen
Um die Benutzerinformationen aus Microsoft Entra ID lesen zu können, müssen wir die richtigen Bereiche definieren.
Fügen Sie die Berechtigung für den Microsoft Graph-Bereich User.Read hinzu, um das Anmelden und Lesen des Benutzerprofils zu aktivieren. Weitere Informationen finden Sie unter User.Read.
az ad app permission add \
--api 00000003-0000-0000-c000-000000000000 \
--api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope \
--id $appId
Sie können die Nachricht ignorieren, um die Zustimmung zu erteilen, es sei denn, Sie sind als globaler Administrator für diese Microsoft Entra-ID authentifiziert. Standarddomänenbenutzer werden aufgefordert, die Zustimmung zu erteilen, wenn sie sich zum ersten Mal mit ihren Microsoft Entra-Anmeldeinformationen beim Cluster anmelden.
Zuweisen von Benutzern und Gruppen zum Cluster (optional)
Anwendungen, die für einen Microsoft Entra-Mandanten registriert sind, sind standardmäßig für alle Benutzer des Mandanten verfügbar, deren Authentifizierung erfolgreich war. Microsoft Entra ID ermöglicht Mandantenadministratoren und Entwicklern die Beschränkung einer App auf eine bestimmte Gruppe von Benutzern oder Sicherheitsgruppen im Mandanten.
Befolgen Sie die Anweisungen in der Microsoft Entra-Dokumentation, um eine Microsoft Entra-App auf eine Gruppe von Benutzern einzuschränken.
Konfigurieren der OpenID-Authentifizierung für OpenShift
Rufen Sie die kubeadmin-Anmeldeinformationen ab. Führen Sie den folgenden Befehl aus, um das Kennwort für den Benutzer kubeadmin zu suchen:
kubeadminPassword=$(az aro list-credentials \
--name $aroCluster \
--resource-group $resourceGroup \
--query kubeadminPassword --output tsv)
Melden Sie sich mit dem folgenden Befehl beim API-Server des OpenShift-Clusters an.
oc login $apiServer --username kubeadmin --password $kubeadminPassword
Erstellen Sie einen OpenShift-Geheimschlüssel, um den geheimen Microsoft Entra-Anwendungsschlüssel zu speichern.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$clientSecret
Erstellen Sie eine oidc.yaml-Datei , um die OpenShift OpenID-Authentifizierung für Microsoft Entra ID zu konfigurieren.
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
Wenden Sie die Konfiguration auf den Cluster an.
oc apply -f oidc.yaml
Sie erhalten eine Antwort wie im folgenden Beispiel.
oauth.config.openshift.io/cluster configured
Überprüfen der Anmeldung mit der Microsoft Entra-ID
Melden Sie sich bei der OpenShift Web Console ab, und melden Sie sich erneut an, und Es wird eine neue Option zum Anmelden mit entraID angezeigt. Möglicherweise müssen Sie einige Minuten warten, bis die Option verfügbar ist.