Microsoft Entra-verificatie configureren voor een Azure Red Hat OpenShift 4-cluster (CLI)
Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u voor dit artikel versie 2.30.0 of hoger van Azure CLI uitvoeren. Voer az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
Haal uw clusterspecifieke URL's op die worden gebruikt om de Microsoft Entra-toepassing te configureren.
Stel de variabelen in voor de resourcegroep en de clusternaam.
Vervang <resource_group> door de naam van de resourcegroep en <aro_cluster> door de naam van uw cluster.
resource_group=<resource_group>
aro_cluster=<aro_cluster>
Bouw de OAuth-callback-URL van het cluster en sla deze op in een variabele oauthCallbackURL.
Notitie
De AAD
sectie in de OAuth-callback-URL moet overeenkomen met de naam van de OAuth-id-provider die u later gaat instellen.
domain=$(az aro show -g $resource_group -n $aro_cluster --query clusterProfile.domain -o tsv)
location=$(az aro show -g $resource_group -n $aro_cluster --query location -o tsv)
apiServer=$(az aro show -g $resource_group -n $aro_cluster --query apiserverProfile.url -o tsv)
webConsole=$(az aro show -g $resource_group -n $aro_cluster --query consoleProfile.url -o tsv)
De indeling van de oauthCallbackURL verschilt enigszins met aangepaste domeinen:
Voer de volgende opdracht uit als u een aangepast domein gebruikt, bijvoorbeeld
contoso.com
.oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/AAD
Als u geen aangepast domein gebruikt, is het
$domain
een tekenreeks van acht tekens en wordt deze uitgebreid met$location.aroapp.io
.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/AAD
Notitie
De AAD
sectie in de OAuth-callback-URL moet overeenkomen met de naam van de OAuth-id-provider die u later gaat instellen.
Een Microsoft Entra-toepassing maken voor verificatie
Vervang <client_secret> door een beveiligd wachtwoord voor de toepassing.
client_secret=<client_secret>
Maak een Microsoft Entra-toepassing en haal de gemaakte toepassings-id op.
app_id=$(az ad app create \
--query appId -o tsv \
--display-name aro-auth \
--reply-urls $oauthCallbackURL \
--password $client_secret)
Haal de tenant-id op van het abonnement dat eigenaar is van de toepassing.
tenant_id=$(az account show --query tenantId -o tsv)
Een manifestbestand maken om de optionele claims te definiëren die moeten worden opgenomen in het id-token
Toepassingsontwikkelaars kunnen optionele claims gebruiken in hun Microsoft Entra-toepassingen om op te geven welke claims ze willen in tokens die naar hun toepassing worden verzonden.
U kunt optionele claims gebruiken voor het volgende:
- Aanvullende claims selecteren die u wilt opnemen in tokens voor uw toepassing.
- Wijzig het gedrag van bepaalde claims die microsoft Entra-id retourneert in tokens.
- Aangepaste claims voor uw toepassing toevoegen en openen.
We configureren OpenShift om de email
claim te gebruiken en terug te vallen om upn
de voorkeursgebruikersnaam in te stellen door het upn
als onderdeel van het id-token toe te voegen dat wordt geretourneerd door Microsoft Entra ID.
Maak een manifest.json-bestand om de Microsoft Entra-toepassing te configureren.
cat > manifest.json<< EOF
[{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
}]
EOF
De optioneleClaims van de Microsoft Entra-toepassing bijwerken met een manifest
az ad app update \
--set optionalClaims.idToken=@manifest.json \
--id $app_id
De microsoft Entra-toepassingsbereikmachtigingen bijwerken
Om de gebruikersgegevens van Microsoft Entra ID te kunnen lezen, moeten we de juiste bereiken definiëren.
Voeg machtigingen toe voor het bereik Azure Active Directory Graph.User.Read om aanmelding en leesgebruikersprofiel in te schakelen.
az ad app permission add \
--api 00000002-0000-0000-c000-000000000000 \
--api-permissions 311a71cc-e848-46a1-bdf8-97ff7156d8e6=Scope \
--id $app_id
Notitie
U kunt het bericht negeren om de toestemming te verlenen, tenzij u bent geverifieerd als een globale Beheer istrator voor deze Microsoft Entra-id. Standaarddomeingebruikers worden gevraagd toestemming te geven wanneer ze zich voor het eerst aanmelden bij het cluster met hun Microsoft Entra-referenties.
Gebruikers en groepen toewijzen aan het cluster (optioneel)
Toepassingen die zijn geregistreerd in een Microsoft Entra-tenant zijn standaard beschikbaar voor alle gebruikers van de tenant die zijn geverifieerd. Met Microsoft Entra ID kunnen tenantbeheerders en ontwikkelaars een app beperken tot een specifieke set gebruikers of beveiligingsgroepen in de tenant.
Volg de instructies in de Microsoft Entra-documentatie om gebruikers en groepen toe te wijzen aan de app.
OpenShift OpenID-verificatie configureren
Haal de kubeadmin
referenties op. Voer de volgende opdracht uit om het wachtwoord voor de kubeadmin
-gebruiker te vinden.
kubeadmin_password=$(az aro list-credentials \
--name $aro_cluster \
--resource-group $resource_group \
--query kubeadminPassword --output tsv)
Meld u aan bij de API-server van het OpenShift-cluster met behulp van de volgende opdracht.
oc login $apiServer -u kubeadmin -p $kubeadmin_password
Maak een OpenShift-geheim om het Microsoft Entra-toepassingsgeheim op te slaan.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$client_secret
Maak een oidc.yaml-bestand om OpenShift OpenID-verificatie te configureren voor Microsoft Entra ID.
cat > oidc.yaml<< EOF
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: AAD
mappingMethod: claim
type: OpenID
openID:
clientID: $app_id
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/$tenant_id
EOF
Pas de configuratie toe op het cluster.
oc apply -f oidc.yaml
U krijgt een antwoord dat er ongeveer als volgt uitziet.
oauth.config.openshift.io/cluster configured
Aanmelding verifiëren via Microsoft Entra-id
Als u zich nu afmeldt bij de OpenShift-webconsole en u opnieuw probeert aan te melden, krijgt u een nieuwe optie te zien om u aan te melden met Microsoft Entra ID. Mogelijk moet u enkele minuten wachten.