Konfigurace ověřování Microsoft Entra pro cluster Azure Red Hat OpenShift 4 (CLI)

Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku místně, musíte mít Azure CLI verze 2.30.0 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Načtěte adresy URL specifické pro cluster, které se použijí ke konfiguraci aplikace Microsoft Entra.

Nastavte proměnné pro skupinu prostředků a název clusteru.

Nahraďte <resource_group> názvem skupiny prostředků a< aro_cluster> názvem vašeho clusteru.

resource_group=<resource_group>
aro_cluster=<aro_cluster>

Vytvořte adresu URL zpětného volání OAuth clusteru a uložte ji do proměnné oauthCallbackURL.

Poznámka:

Část AAD adresy URL zpětného volání OAuth by měla odpovídat názvu zprostředkovatele identity OAuth, který nastavíte později.

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)

Formát oauthCallbackURL se u vlastních domén mírně liší:

  • Pokud používáte vlastní doménu, například spusťte následující příkaz. contoso.com

    oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/AAD
    
  • Pokud nepoužíváte vlastní doménu, $domain bude to osmimísícový řetězec alnum a bude rozšířen .$location.aroapp.io

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

Poznámka:

Část AAD adresy URL zpětného volání OAuth by měla odpovídat názvu zprostředkovatele identity OAuth, který nastavíte později.

Vytvoření aplikace Microsoft Entra pro ověřování

Nahraďte <client_secret> zabezpečeným heslem pro aplikaci.

client_secret=<client_secret>

Vytvořte aplikaci Microsoft Entra a načtěte vytvořený identifikátor aplikace.

app_id=$(az ad app create \
  --query appId -o tsv \
  --display-name aro-auth \
  --reply-urls $oauthCallbackURL \
  --password $client_secret)

Načtěte ID tenanta předplatného, které vlastní aplikaci.

tenant_id=$(az account show --query tenantId -o tsv)

Vytvoření souboru manifestu pro definování volitelných deklarací identity, které se mají zahrnout do tokenu ID

Vývojáři aplikací mohou ve svých aplikacích Microsoft Entra použít volitelné deklarace identity k určení, které deklarace identity chtějí v tokenech odeslaných do své aplikace.

Možné případy použití volitelných deklarací identity:

  • Výběr dalších deklarací identity, které se zahrnou do tokenů pro vaši aplikaci
  • Změňte chování určitých deklarací identity, které microsoft Entra ID vrací v tokenech.
  • Přidání vlastních deklarací identity do vaší aplikace a přístup k nim

Nakonfigurujeme OpenShift tak, aby používala email deklaraci identity a vrátila se k upn nastavení upřednostňovaného uživatelského jména přidáním upn tokenu ID vráceného id Microsoft Entra ID.

Vytvořte soubor manifest.json pro konfiguraci aplikace Microsoft Entra.

cat > manifest.json<< EOF
[{
  "name": "upn",
  "source": null,
  "essential": false,
  "additionalProperties": []
},
{
"name": "email",
  "source": null,
  "essential": false,
  "additionalProperties": []
}]
EOF

Aktualizace volitelnéhoclaims aplikace Microsoft Entra pomocí manifestu

az ad app update \
  --set optionalClaims.idToken=@manifest.json \
  --id $app_id

Aktualizace oprávnění oboru aplikace Microsoft Entra

Abychom mohli číst informace o uživateli z ID Microsoft Entra, musíme definovat správné obory.

Přidejte oprávnění pro obor Azure Active Directory Graph.User.Read pro povolení přihlášení a čtení profilu uživatele.

az ad app permission add \
 --api 00000002-0000-0000-c000-000000000000 \
 --api-permissions 311a71cc-e848-46a1-bdf8-97ff7156d8e6=Scope \
 --id $app_id

Poznámka:

Pokud nejste ověřeni jako globální Správa istrator pro toto ID Microsoft Entra, můžete zprávu bezpečně ignorovat a udělit souhlas. Standardní uživatelé domény budou požádáni o udělení souhlasu při prvním přihlášení ke clusteru pomocí svých přihlašovacích údajů Microsoft Entra.

Přiřazení uživatelů a skupin ke clusteru (volitelné)

Aplikace zaregistrované v tenantovi Microsoft Entra jsou ve výchozím nastavení dostupné všem uživatelům tenanta, kteří se úspěšně ověřují. Microsoft Entra ID umožňuje správcům tenantů a vývojářům omezit aplikaci na konkrétní sadu uživatelů nebo skupin zabezpečení v tenantovi.

Podle pokynů v dokumentaci k Microsoft Entra přiřaďte uživatele a skupiny k aplikaci.

Konfigurace ověřování OpenShift OpenID

kubeadmin Načtěte přihlašovací údaje. Spuštěním následujícího příkazu vyhledejte heslo uživatele kubeadmin .

kubeadmin_password=$(az aro list-credentials \
  --name $aro_cluster \
  --resource-group $resource_group \
  --query kubeadminPassword --output tsv)

Pomocí následujícího příkazu se přihlaste k serveru rozhraní API clusteru OpenShift.

oc login $apiServer -u kubeadmin -p $kubeadmin_password

Vytvořte tajný kód OpenShift pro uložení tajného kódu aplikace Microsoft Entra.

oc create secret generic openid-client-secret-azuread \
  --namespace openshift-config \
  --from-literal=clientSecret=$client_secret

Vytvořte soubor oidc.yaml pro konfiguraci ověřování OpenShift OpenID pro 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

Použijte konfiguraci pro cluster.

oc apply -f oidc.yaml

Vrátíte odpověď podobnou následující.

oauth.config.openshift.io/cluster configured

Ověření přihlášení prostřednictvím Microsoft Entra ID

Pokud se teď odhlásíte z webové konzoly OpenShift a pokusíte se přihlásit znovu, zobrazí se nová možnost přihlášení pomocí Microsoft Entra ID. Možná budete muset několik minut počkat.

Log in screen with Microsoft Entra option