Delen via


Microsoft Entra-verificatie configureren voor een Azure Red Hat OpenShift-cluster

In dit artikel gebruikt u Azure CLI om Microsoft Entra-verificatie in te stellen voor een Azure Red Hat OpenShift-cluster. U maakt variabelen die worden gebruikt in opdrachten die een OAuth callback-URL, een toepassingsregistratie en clientgeheim maken en de machtigingen van de toepassing bijwerken.

Vereiste voorwaarden

  • Een bestaand Azure Red Hat OpenShift-cluster. Als u geen cluster hebt, raadpleegt u een nieuw cluster maken.
  • Azure CLI 2.30.0 of hoger geïnstalleerd op uw computer. Gebruik az --version dit om de geïnstalleerde versie van Azure CLI te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. U kunt Azure Cloud Shell ook gebruiken met Bash om opdrachten uit te voeren.
  • OpenShift CLI geïnstalleerd op uw computer of in uw Bash Cloud Shell. Zie De OpenShift CLI installeren voor meer informatie.

Variabelen maken

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 door <resourceGroupName> de naam van uw resourcegroep en <aroClusterName> door de naam van uw cluster.

resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>

Maak de volgende variabelen die worden gebruikt in andere opdrachten om de stappen in dit artikel uit te voeren.

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)

Maak de callback-URL van OAuth het cluster en sla deze op in de variabele oauthCallbackURL. De entraID aan het einde van de callback-URL moet overeenkomen met de naam van de OAuthOAuth id-provider die u later in het bestand oidc.yaml maakt.

De indeling van de indeling oauthCallbackURL is afhankelijk van als u een aangepast domein gebruikt.

  • Als u een aangepast domein hebt, voert contoso.comu de volgende opdracht uit.

    oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/entraID
    
  • Als u geen aangepast domein gebruikt, is het $domain een alfanumerieke tekenreeks van acht tekens die voorafgaat aan de $location.aroapp.iotekenreeks.

    oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID
    

Een Microsoft Entra-toepassing maken voor verificatie

Maak een Microsoft Entra-toepassing en stel een clientgeheim in voor de toepassing.

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)

De waarden worden opgeslagen in variabelen en clientSecret geeft een consolebericht weer dat de opdrachtuitvoer referenties bevat. De waarde wordt verderop in dit artikel gebruikt en wanneer u klaar bent, kunt u de variabele wissen met behulp van de clientSecret="" opdracht.

Zie az ad app create en az ad app credential reset voor meer informatie over de opdrachten voor het maken van de app en referenties.

Haal de tenant-id op van het abonnement dat eigenaar is van de toepassing.

tenantId=$(az account show --query tenantId --output 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:

  • Selecteer andere claims die u wilt opnemen in tokens voor uw toepassing.
  • Wijzig het gedrag van bepaalde claims die Microsoft Entra ID in tokens teruggeeft.
  • Voeg aangepaste claims toe en krijg er toegang toe voor uw toepassing.

U configureert OpenShift om de email claim te gebruiken en terug te vallen om upn de gebruikersnaam van voorkeur 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-test-file.json<< EOF
{
  "idToken": [
    {
      "name": "email",
      "source": null,
      "essential": false,
      "additionalProperties": []
    },
    {
      "name": "upn",
      "source": null,
      "essential": false,
      "additionalProperties": []
    }
  ]
}
EOF

De optioneleClaims van de Microsoft Entra-toepassing bijwerken met een manifest

Als u het manifestbestand wilt gebruiken en de toepassing wilt bijwerken optionalClaims, voert u de volgende opdracht uit.

az ad app update \
  --id $appId \
  --optional-claims @manifest.json

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 Microsoft Graph-bereik User.Read om aanmelding in te schakelen en gebruikersprofiel te lezen. Zie User.Read voor meer informatie.

az ad app permission add \
  --api 00000003-0000-0000-c000-000000000000 \
  --api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope \
  --id $appId

U kunt het bericht negeren om de toestemming te verlenen, tenzij u bent geverifieerd als globale beheerder voor deze Microsoft Entra-id. Standaarddomeingebruikers worden gevraagd toestemming te verlenen 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 een Microsoft Entra-app te beperken tot een set gebruikers.

OpenShift OpenID-verificatie configureren

Haal de kubeadmin referenties op. Voer de volgende opdracht uit om het wachtwoord voor de kubeadmin-gebruiker te vinden.

kubeadminPassword=$(az aro list-credentials \
  --name $aroCluster \
  --resource-group $resourceGroup \
  --query kubeadminPassword --output tsv)

Meld u aan bij de API-server van het OpenShift-cluster met behulp van de volgende opdracht.

oc login $apiServer --username kubeadmin --password $kubeadminPassword

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=$clientSecret

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: 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

Pas de configuratie toe op het cluster.

oc apply -f oidc.yaml

U krijgt een antwoord zoals in het volgende voorbeeld.

oauth.config.openshift.io/cluster configured

Aanmelden verifiëren met behulp van Microsoft Entra-id

Meld u af bij de OpenShift-webconsole en meld u opnieuw aan en u ziet een nieuwe optie om u aan te melden met entraID. Mogelijk moet u enkele minuten wachten totdat de optie beschikbaar is.

Schermopname van de optie Microsoft Entra ID om u aan te melden bij een Azure Red Hat OpenShift-cluster.