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.
Richten Sie Azure Red Hat OpenShift mit gehosteten Steuerelementebenen ein, um einen externen OpenID Connect (OIDC)-Identitätsanbieter für die Authentifizierung anstelle des integrierten OpenShift OAuth-Servers zu verwenden. Während der integrierte OAuth-Server verschiedene Identitätsanbieter unterstützt, verfügt er über eingeschränkte Funktionen. Indem Sie externe OIDC-Identitätsanbieter direkt in Azure Red Hat OpenShift mit gehosteten Steuerebenen integrieren, können Sie Computer-zu-Computer-Workflows wie CLI-Zugriff aktivieren und Features erhalten, die mit dem integrierten OAuth-Server nicht verfügbar sind.
In diesem Artikel wird beschrieben, wie Sie Microsoft Entra ID als externen Authentifizierungsanbieter konfigurieren, um zugriff auf die CLI und die OpenShift-Konsole zu ermöglichen.
Voraussetzungen
- Azure CLI Version 2.67.0 oder höher. Verwenden Sie
az --version, um Ihre installierte Version zu finden. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren. - Stellen Sie sicher, dass Sie temporäre Administratoranmeldeinformationen installiert haben.
- Berechtigung zum Registrieren von Anwendungen in Ihrem Microsoft Entra-ID-Mandanten. Standardmäßig können alle Benutzer Anwendungen registrieren. Wenn diese Einstellung in "Nein" geändert wurde, benötigen Sie die Rolle "Anwendungsentwickler " oder "Anwendungsadministrator" .
- Die ARO HCP CLI-Erweiterung wird installiert. Wenn Sie es installieren müssen, führen Sie
az extension add --name aroaus.
Vorbereiten von Umgebungsvariablen
Stellen Sie sicher, dass die folgenden Umgebungsvariablen definiert sind:
CUSTOMER_RG_NAME="<resource-group-name>"
CLUSTER_NAME="<cluster-name>"
EXTERNAL_AUTH_DISPLAY_NAME="${CLUSTER_NAME}-auth"
EXTERNAL_AUTH_NAME="entra"
TENANT_ID=$(az account show --query tenantId --output tsv)
ISSUER_URL="https://login.microsoftonline.com/${TENANT_ID}/v2.0"
SUBSCRIPTION_ID=$(az account show --query id --output tsv)
CUSTOMER_RG_NAME="<resource-group-name>"
CLUSTER_NAME="<cluster-name>"
EXTERNAL_AUTH_DISPLAY_NAME="${CLUSTER_NAME}-auth"
EXTERNAL_AUTH_NAME="entra"
TENANT_ID=$(az account show --query tenantId --output tsv)
ISSUER_URL="https://login.microsoftonline.com/${TENANT_ID}/v2.0"
Konfigurieren der Microsoft Entra-ID
Rufen Sie die OpenShift Authentication-Rückruf-URL ab.
CONSOLE_URL=$(az aro hcp cluster show \ --resource-group "${CUSTOMER_RG_NAME}" \ --name "${CLUSTER_NAME}" \ --query properties.console.url --output tsv) CONSOLE_CALLBACK_URL="${CONSOLE_URL}/auth/callback"Registrieren Sie eine neue App in Microsoft Entra ID. Um über die
oc- oderkubectl-CLI auf den API-Server zuzugreifen, fügen Sie eine zweite Umleitungs-URI hinzu.Im folgenden Beispiel wird eine Microsoft Entra ID Anwendung mit zwei Umleitungs-URIs erstellt: die erforderliche OpenShift Authentication-Rückruf-URL und eine zweite Umleitung für DEN CLI-Zugriff:
CLIENT_ID=$(az ad app create \ --display-name "${EXTERNAL_AUTH_DISPLAY_NAME}" \ --web-redirect-uris ${CONSOLE_CALLBACK_URL} http://localhost:8000 \ --query appId --output tsv)Erstellen Sie einen geheimen Clientschlüssel für die Anwendung. Eine Konsolenmeldung benachrichtigt Sie, dass die Befehlsausgabe Anmeldeinformationen enthält. Verwenden Sie den geheimen Clientschlüssel weiter unten in diesem Artikel.
Note
Nachdem Sie alle Schritte in diesem Artikel abgeschlossen haben, löschen Sie die Variable. Siehe Vertrauliche Variablen bereinigen.
CLIENT_SECRET=$(az ad app credential reset --id ${CLIENT_ID} --query password --output tsv)
Erstellen eines externen Authentifizierungsanbieters
Die folgenden Anspruchszuordnungen zeigen OpenShift, wie die preferred_username- und groups-Ansprüche gelesen werden, deren Ausgabe Sie in Microsoft Entra ID konfiguriert haben.
Erstellen Sie den externen Authentifizierungsanbieter für Azure Red Hat OpenShift mit gehosteten Steuerungsebenen.
az aro hcp cluster external-auth create \ --resource-group "${CUSTOMER_RG_NAME}" \ --cluster-name "${CLUSTER_NAME}" \ --name "${EXTERNAL_AUTH_NAME}" \ --issuer-url "${ISSUER_URL}" \ --issuer-audience "[${CLIENT_ID}]" \ --claim groups \ --username-claim preferred_username \ --username-prefix-policy NoPrefix \ --client client-id="${CLIENT_ID}" component-name=console auth-client-namespace=openshift-console extra-scopes="[profile]" type=Confidential \ --client client-id="${CLIENT_ID}" component-name=cli auth-client-namespace=openshift-console extra-scopes="[profile]" type=PublicÜberprüfen Sie die Konfiguration des externen Authentifizierungsanbieters.
az aro hcp cluster external-auth show \ --resource-group "${CUSTOMER_RG_NAME}" \ --cluster-name "${CLUSTER_NAME}" \ --name "${EXTERNAL_AUTH_NAME}"
Konfigurieren Sie den externen Authentifizierungsanbieter für Azure Red Hat OpenShift mit gehosteten Steuerebenen. Um einen externen Authentifizierungsanbieter zu konfigurieren, definieren Sie eine
externalAuthsRessource. Das folgende Beispiel zeigt eineexternalAuthsRessource in einer Bicep Datei. Weitere Informationen zu den Eigenschaften des externen Authentifizierungsanbieters finden Sie unter Eigenschaften der Konfiguration der externen Authentifizierung.Speichern Sie das folgende Beispiel als
externalauth.bicep:@description('The name of the external auth provider configuration') param externalAuthName string @description('The issuer url') param issuerURL string @description('The client ID') param clientID string @description('Name of the hypershift cluster') param clusterName string resource hcp 'Microsoft.RedHatOpenShift/hcpOpenShiftClusters@2026-09-01-preview' existing = { name: clusterName } resource externalauth 'Microsoft.RedHatOpenShift/hcpOpenShiftClusters/externalAuths@2026-09-01-preview' = { parent: hcp name: externalAuthName properties: { claim: { mappings: { username: { claim: 'preferred_username' prefixPolicy: 'NoPrefix' } groups: { claim: 'groups' } } } clients: [ { clientId: clientID component: { name: 'console' authClientNamespace: 'openshift-console' } extraScopes: [ 'profile' ] type: 'Confidential' } { clientId: clientID component: { name: 'cli' authClientNamespace: 'openshift-console' } extraScopes: [ 'profile' ] type: 'Public' } ] issuer: { url: issuerURL audiences: [ clientID ] } } }Wenden Sie die datei Bicep an.
az deployment group create \ --name 'aro-hcp-auth' \ --subscription "${SUBSCRIPTION_ID}" \ --resource-group "${CUSTOMER_RG_NAME}" \ --template-file externalauth.bicep \ --parameters \ externalAuthName="${EXTERNAL_AUTH_NAME}" \ issuerURL="${ISSUER_URL}" \ clientID="${CLIENT_ID}" \ clusterName="${CLUSTER_NAME}"Überprüfen Sie die Konfiguration des externen Authentifizierungsanbieters.
az aro hcp cluster external-auth show \ --resource-group "${CUSTOMER_RG_NAME}" \ --cluster-name "${CLUSTER_NAME}" \ --name "${EXTERNAL_AUTH_NAME}"
Konfigurieren der Authentifizierung und Autorisierung in OpenShift
Melden Sie sich nach dem Erstellen des externen Authentifizierungsanbieters bei Ihrem Azure Red Hat OpenShift mit gehosteten Steuerelementebenencluster an, um den Zugriff für Ihren vertraulichen Client (die OpenShift-Konsole) zu konfigurieren und rollenbasierte Zugriffssteuerung (RBAC) einzurichten.
Wenn Sie keine temporäre Administratoranmeldeinformation für Ihren Azure Red Hat OpenShift-Cluster mit gehosteten Control Planes haben, generieren Sie eine. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einem Azure Red Hat OpenShift-Cluster mit gehosteter Steuerungsebene.
Erstellen Sie das Client-Secret in OpenShift.
oc create secret generic ${EXTERNAL_AUTH_NAME}-console-openshift-console \ --namespace openshift-config \ --from-literal=clientSecret=${CLIENT_SECRET}(Optional) Falls erforderlich, weisen Sie Ihrem Azure Red Hat OpenShift-Cluster mit gehosteten Control Planes Benutzer und Gruppen zu.
Standardmäßig können alle Benutzer im Microsoft Entra Mandanten nach erfolgreicher Authentifizierung auf registrierte Anwendungen zugreifen. Microsoft Entra ID ermöglicht Es Mandantenadministratoren und Entwicklern, eine App auf eine bestimmte Gruppe von Benutzern oder Sicherheitsgruppen im Mandanten zu beschränken.
Informationen zum Einschränken einer Microsoft Entra-App auf eine bestimmte Gruppe von Benutzern finden Sie unter Einschränken einer Microsoft Entra App auf eine Gruppe von Benutzern.
Konfigurieren Sie RBAC, um entweder Benutzer- oder Gruppenzugriff auf die Clusteradministratorrolle zu gewähren.
Standardmäßig gewährt OpenShift keine Berechtigungen, um Aktionen innerhalb Ihres Clusters auszuführen, wenn sich ein Benutzer zum ersten Mal anmeldet. Azure Red Hat OpenShift mit gehosteten Steuerebenen umfasst eine erhebliche Anzahl vorkonfigurierte Rollen, einschließlich der Clusteradministratorrolle, die vollzugriff und Kontrolle über den Cluster gewährt. Der Cluster erstellt nicht automatisch die Objekte
RoleBindingundClusterRoleBindingfür authentifizierte Nutzer; Sie sind selbst dafür verantwortlich, diese Bindungen zu erstellen.In diesem Beispiel wird gezeigt, wie Sie ein
ClusterRoleBindingObjekt erstellen, das einem bestimmten Microsoft Entra ID Benutzer oder einer Gruppe die Clusteradministratorrolle gewährt. Sie können auch eine Rollenbindung für eine Sicherheitsgruppe erstellen, indem Sie die Anweisungen unter Verwendung von RBAC befolgen.Rufen Sie den Microsoft Entra ID Benutzerprinzipalnamen für den Benutzer ab, auf den Sie Zugriff gewähren möchten.
USER_NAME=$(az ad user show --id "<user-email>" --query userPrincipalName -o tsv)Erstellen Sie ein
ClusterRoleBindingObjekt, das dem Benutzer die Clusteradministratorrolle gewährt.oc apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: aro-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: $USER_NAME EOF
Überprüfen der Konfiguration der externen Authentifizierung
Nachdem Sie die externe Authentifizierung für Ihren Cluster eingerichtet haben, können Sie die Konfiguration für die OpenShift CLI und die Webkonsole überprüfen.
Überprüfen des Zugriffs mithilfe der OpenShift-Webkonsole
Rufen Sie die URL für die OpenShift-Webkonsole ab.
az aro hcp cluster show \ --resource-group "${CUSTOMER_RG_NAME}" \ --name "${CLUSTER_NAME}" \ --query properties.console.url --output tsvÖffnen Sie die URL in Ihrem Webbrowser, und melden Sie sich an.
Überprüfen des Zugriffs mithilfe der OpenShift CLI
Sie können Microsoft Entra ID verwenden, um sich beim OpenShift-Befehlszeilentool anzumelden. Diese Authentifizierungsmethode funktioniert, da das kubelogin client-go-Anmeldeinformations-Plug-In jetzt direkt in das Tool integriert ist.
Rufen Sie die API-URL ab.
API_URL=$(az aro hcp cluster show \ --resource-group "${CUSTOMER_RG_NAME}" \ --name "${CLUSTER_NAME}" \ --query properties.api.url --output tsv)Melden Sie sich beim Cluster an, indem Sie den folgenden Befehl ausführen:
oc login $API_URL \ --exec-plugin=oc-oidc \ --client-id=$CLIENT_ID \ --client-secret=$CLIENT_SECRET \ --issuer-url=$ISSUER_URL \ --extra-scopes=profile \ --callback-port=8000Der Befehl zeigt eine URL an. Verwenden Sie die URL, um den Authentifizierungsprozess in Ihrem Browser abzuschließen. Wenn Sie fertig sind, wird die OpenShift CLI authentifiziert.
Überprüfen Sie, ob Ihre Anmeldeinformationen ordnungsgemäß festgelegt sind:
oc auth whoamiBeispielausgabe:
ATTRIBUTE VALUE Username user@email.com Groups [<group-id> system:authenticated]
Bereinigen vertraulicher Variablen
Nachdem Sie überprüft haben, ob die externe Authentifizierung funktioniert, löschen Sie die vertraulichen Variablen aus Ihrer Shellsitzung.
CLIENT_SECRET=""