Delen via


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.

Log in screen with Microsoft Entra option