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:
Zprávu můžete bezpečně ignorovat, abyste udělili souhlas, pokud nejste ověřeni jako globální správce pro toto ID Microsoft Entra. 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.