Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule użyjesz interfejsu wiersza polecenia platformy Azure do skonfigurowania uwierzytelniania usługi Microsoft Entra dla klastra usługi Azure Red Hat OpenShift. Zmienne, które są używane w poleceniach, które tworzą adres URL wywołania zwrotnego, rejestrację OAuth aplikacji i klucz tajny klienta, i aktualizują uprawnienia aplikacji.
Wymagania wstępne
- Istniejący klaster usługi Azure Red Hat OpenShift. Jeśli nie masz klastra, zobacz Tworzenie nowego klastra.
- Interfejs wiersza polecenia platformy Azure w wersji 2.30.0 lub nowszej zainstalowany na komputerze. Użyj
az --version, aby znaleźć zainstalowaną wersję Azure CLI. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Do uruchamiania poleceń można również użyć usługi Azure Cloud Shell z powłoką Bash. - Interfejs wiersza polecenia openShift zainstalowany na komputerze lub w usłudze Bash Cloud Shell. Aby uzyskać więcej informacji, zobacz Instalowanie interfejsu wiersza polecenia platformy OpenShift.
Tworzenie zmiennych
Pobierz adresy URL specyficzne dla klastra, które są używane do konfigurowania aplikacji Microsoft Entra.
Ustaw zmienne dla grupy zasobów i nazwy klastra. Zastąp <resourceGroupName> ciąg nazwą grupy zasobów i <aroClusterName> nazwą klastra.
resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>
Utwórz następujące zmienne, które są używane w innych poleceniach, aby wykonać kroki opisane w tym artykule.
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)
Utwórz adres URL wywołania zwrotnego klastra OAuth i zapisz go w zmiennej oauthCallbackURL. Na entraID końcu OAuth adresu URL wywołania zwrotnego musi być zgodna z nazwą dostawcy tożsamości utworzoną OAuth później w pliku oidc.yaml .
Format obiektu oauthCallbackURL zależy od tego, czy używasz domeny niestandardowej.
Jeśli masz domenę niestandardową, na
contoso.comprzykład , uruchom następujące polecenie.oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/entraIDJeśli nie używasz domeny niestandardowej,
$domainjest to osiem znaków alfanumeryczny ciąg poprzedzający element$location.aroapp.io.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID
Tworzenie aplikacji Firmy Microsoft Entra na potrzeby uwierzytelniania
Utwórz aplikację Microsoft Entra i ustaw klucz tajny klienta dla aplikacji.
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)
Wartości są przechowywane w zmiennych i clientSecret wyświetla komunikat konsoli, że dane wyjściowe polecenia zawierają poświadczenia. Wartość jest używana w dalszej części tego artykułu, a po zakończeniu możesz wyczyścić zmienną clientSecret="" przy użyciu polecenia .
Aby uzyskać więcej informacji na temat poleceń tworzenia aplikacji i poświadczeń, zobacz az ad app create i az ad app credential reset.
Pobierz identyfikator dzierżawy subskrypcji, która jest właścicielem aplikacji.
tenantId=$(az account show --query tenantId --output tsv)
Utwórz plik manifestu, aby zdefiniować opcjonalne oświadczenia do uwzględnienia w tokenie identyfikatora
Deweloperzy aplikacji mogą używać opcjonalnych oświadczeń w swoich aplikacjach firmy Microsoft Entra, aby określić, które oświadczenia chcą w tokenach wysyłanych do aplikacji.
Możesz użyć opcjonalnych oświadczeń, aby:
- Wybierz inne oświadczenia, które mają być uwzględnione w tokenach dla aplikacji.
- Zmień zachowanie niektórych atrybutów, które Microsoft Entra ID zwraca w tokenach.
- Dodawać oświadczenia niestandardowe dla aplikacji i uzyskiwać do nich dostęp.
Należy skonfigurować usługę OpenShift, aby użyć email oświadczenia i wrócić do upn ustawienia preferowanej nazwy użytkownika, dodając upn element jako część tokenu identyfikatora zwróconego przez identyfikator entra firmy Microsoft.
Utwórz plik manifest.json w celu skonfigurowania aplikacji Microsoft Entra.
cat > manifest-test-file.json<< EOF
{
"idToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
}
]
}
EOF
Aktualizowanie opcjonalnej aplikacji Microsoft EntraWybierz za pomocą manifestu
Aby użyć pliku manifestu i zaktualizować aplikację optionalClaims, uruchom następujące polecenie.
az ad app update \
--id $appId \
--optional-claims @manifest.json
Aktualizowanie uprawnień zakresu aplikacji Entra firmy Microsoft
Aby móc odczytywać informacje o użytkowniku z identyfikatora Entra firmy Microsoft, musimy zdefiniować odpowiednie zakresy.
Dodaj uprawnienie dla zakresu programu Microsoft Graph User.Read , aby włączyć logowanie i odczytywać profil użytkownika. Aby uzyskać więcej informacji, zobacz User.Read.
az ad app permission add \
--api 00000003-0000-0000-c000-000000000000 \
--api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope \
--id $appId
Możesz zignorować komunikat, aby udzielić zgody, chyba że użytkownik jest uwierzytelniony jako administrator globalny dla tego identyfikatora Entra firmy Microsoft. Użytkownicy domeny standardowej są proszeni o wyrażenie zgody podczas pierwszego logowania się do klastra przy użyciu poświadczeń firmy Microsoft Entra.
Przypisywanie użytkowników i grup do klastra (opcjonalnie)
Aplikacje zarejestrowane w dzierżawie usługi Microsoft Entra są domyślnie dostępne dla wszystkich użytkowników dzierżawy, którzy pomyślnie się uwierzytelniają. Identyfikator entra firmy Microsoft umożliwia administratorom dzierżawy i deweloperom ograniczenie aplikacji do określonego zestawu użytkowników lub grup zabezpieczeń w dzierżawie.
Postępuj zgodnie z instrukcjami w dokumentacji firmy Microsoft Entra, aby ograniczyć aplikację Microsoft Entra do zestawu użytkowników.
Konfigurowanie uwierzytelniania OpenShift OpenID
kubeadmin Pobierz poświadczenia. Uruchom następujące polecenie, aby znaleźć hasło użytkownika kubeadmin .
kubeadminPassword=$(az aro list-credentials \
--name $aroCluster \
--resource-group $resourceGroup \
--query kubeadminPassword --output tsv)
Zaloguj się do serwera interfejsu API klastra OpenShift przy użyciu następującego polecenia.
oc login $apiServer --username kubeadmin --password $kubeadminPassword
Utwórz wpis tajny openShift do przechowywania wpisu tajnego aplikacji Microsoft Entra.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$clientSecret
Utwórz plik oidc.yaml , aby skonfigurować uwierzytelnianie OpenShift OpenID względem identyfikatora Entra firmy Microsoft.
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
Zastosuj konfigurację do klastra.
oc apply -f oidc.yaml
Otrzymasz odpowiedź podobną do poniższego przykładu.
oauth.config.openshift.io/cluster configured
Weryfikowanie logowania przy użyciu identyfikatora Entra firmy Microsoft
Wyloguj się z konsoli internetowej OpenShift i zaloguj się ponownie, a zobaczysz nową opcję logowania za pomocą identyfikatora entraID. Może być konieczne poczekanie kilku minut na udostępnienie opcji.