Schnellstart: Konfigurieren des einmaligen Anmeldens für Anwendungen, die den Azure Spring Apps Enterprise-Plan verwenden

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

Dieser Artikel gilt für:❌ Basic/Standard ✔️ Enterprise

In dieser Schnellstartanleitung wird beschrieben, wie Sie einmaliges Anmelden für Anwendungen konfigurieren, die im Azure Spring Apps Enterprise-Plan ausgeführt werden.

Voraussetzungen

Vorbereiten von Anmeldeinformationen für einmaliges Anmelden

Zum Konfigurieren des einmaligen Anmeldens für die Anwendung müssen Sie Anmeldeinformationen vorbereiten. In den folgenden Abschnitten werden die Schritte zur Verwendung eines vorhandenen Anbieters oder bei der Bereitstellung einer Anwendungsregistrierung in Microsoft Entra ID beschrieben.

Verwenden eines vorhandenen Anbieters

Führen Sie die folgenden Schritte aus, um einmaliges Anmelden mit einem vorhandenen Identitätsanbieter zu konfigurieren. Wenn Sie eine Microsoft Entra-App-Registrierung bereitstellen, fahren Sie mit dem Abschnitt Erstellen und Konfigurieren einer Anwendungsregistrierung in Microsoft Entra ID fort.

  1. Konfigurieren Sie Ihren vorhandenen Identitätsanbieter so, dass Umleitungen zurück zu Spring Cloud Gateway for VMware Tanzu und zum API-Portal for VMware Tanzu möglich sind. Spring Cloud Gateway verfügt über einen einzigen URI, um den erneuten Zugang zum Gateway zu ermöglichen. Das API-Portal verfügt über zwei URIs zur Unterstützung der Benutzeroberfläche und der zugrunde liegenden API. Die folgenden Befehle rufen diese URIs ab, die Sie der Konfiguration Ihres SSO-Anbieters hinzufügen.

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    export PORTAL_URL=$(az spring api-portal show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    echo "https://${GATEWAY_URL}/login/oauth2/code/sso"
    echo "https://${PORTAL_URL}/oauth2-redirect.html"
    echo "https://${PORTAL_URL}/login/oauth2/code/sso"
    
  2. Rufen Sie die Client ID und den Client Secret für Ihren Identitätsanbieter ab.

  3. Rufen Sie den Issuer URI für Ihren Identitätsanbieter ab. Sie müssen den Anbieter mit einem Aussteller-URI konfigurieren. Dabei handelt es sich um den URI, den er als Ausstellerbezeichner angibt. Wenn der angegebene Aussteller-URI (issuer-uri) z. B. https://example.com lautet, wird eine OpenID-Anbieterkonfigurationsanforderung an https://example.com/.well-known/openid-configuration gesendet. Als Ergebnis wird eine OpenID-Anbieterkonfigurationsantwort erwartet.

    Hinweis

    Sie können nur Autorisierungsserver verwenden, die das OpenID Connect Discovery-Protokoll unterstützen.

  4. Rufen Sie den JWK URI für Ihren Identitätsanbieter zur späteren Verwendung ab. Der JWK URI weist in der Regel das Format ${ISSUER_URI}/keys oder ${ISSUER_URI}/<version>/keys auf. Die Identitätsdienstanwendung verwendet die öffentlichen JSON Web Keys (JWKs), um JSON Web Token (JWT) zu überprüfen, die vom Autorisierungsserver Ihres Identitätsanbieters für einmaliges Anmelden ausgestellt wurden.

Erstellen und Konfigurieren einer Anwendungsregistrierung in Microsoft Entra ID

Führen Sie diese Schritte aus, um die Anwendung bei Microsoft Entra ID zu registrieren. Wenn Sie die Anmeldeinformationen eines vorhandenen Anbieters verwenden, fahren Sie mit dem Abschnitt Bereitstellen der Identitätsdienstanwendung fort.

  1. Verwenden Sie den folgenden Befehl, um eine Anwendungsregistrierung in Microsoft Entra ID zu erstellen, und speichern Sie die Ausgabe:

    az ad app create --display-name <app-registration-name> > ad.json
    
  2. Verwenden Sie den folgenden Befehl, um die Anwendungs-ID abzurufen und den geheimen Clientschlüssel zu erfassen:

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
    
  3. Verwenden Sie den folgenden Befehl, um der Anwendungsregistrierung einen Dienstprinzipal zuzuweisen:

    az ad sp create --id ${APPLICATION_ID}
    
  4. Verwenden Sie die folgenden Befehle, um die URLs für Spring Cloud Gateway und für das API-Portal abzurufen und die erforderlichen Antwort-URLs zur Active Directory-App-Registrierung hinzuzufügen.

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    
    export GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    export PORTAL_URL=$(az spring api-portal show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    az ad app update \
        --id ${APPLICATION_ID} \
        --web-redirect-uris "https://${GATEWAY_URL}/login/oauth2/code/sso" "https://${PORTAL_URL}/oauth2-redirect.html" "https://${PORTAL_URL}/login/oauth2/code/sso"
    
  5. Verwenden Sie den folgenden Befehl, um den Client ID der Anwendung abzurufen. Speichern Sie die Ausgabe zur späteren Verwendung in diesem Schnellstart.

    cat sso.json | jq -r '.appId'
    
  6. Verwenden Sie den folgenden Befehl, um den Client Secret der Anwendung abzurufen. Speichern Sie die Ausgabe zur späteren Verwendung in diesem Schnellstart.

    cat sso.json | jq -r '.password'
    
  7. Verwenden Sie den folgenden Befehl, um den Issuer URI abzurufen. Speichern Sie die Ausgabe zur späteren Verwendung in diesem Schnellstart.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
    
  8. Rufen Sie den JWK URI aus der Ausgabe des folgenden Befehls ab. Die Identitätsdienstanwendung verwendet die öffentlichen JSON Web Keys (JWKs), um JSON Web Token (JWT) zu überprüfen, die von Active Directory ausgestellt wurden.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/discovery/v2.0/keys"
    

Bereitstellen der Identitätsdienstanwendung

Führen Sie die folgenden Schritte aus, um die Identitätsdienstanwendung bereitzustellen und so die Konfiguration für einmaliges Anmelden abzuschließen. Die Identitätsdienstanwendung bietet eine einzige Route, um die Identifizierung des Benutzers zu unterstützen.

  1. Navigieren Sie zum Projektordner.

  2. Verwenden Sie den folgenden Befehl, um die identity-service-Anwendung zu erstellen:

    az spring app create \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  3. Verwenden Sie den folgenden Befehl, um die externalisierte Konfiguration für den Identitätsdienst durch Bindung an den Anwendungskonfigurationsdienst zu aktivieren:

    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  4. Verwenden Sie den folgenden Befehl, um die Dienstermittlung und -registrierung für den Identitätsdienst durch Bindung an die Dienstregistrierung zu aktivieren:

    az spring service-registry bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  5. Verwenden Sie den folgenden Befehl, um den Identitätsdienst bereitzustellen:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --config-file-pattern identity/default \
        --source-path apps/acme-identity \
        --build-env BP_JVM_VERSION=17 \
        --env "JWK_URI=<jwk-uri>"
    
  6. Verwenden Sie den folgenden Befehl, um Anforderungen an den Identitätsdienst weiterzuleiten:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --name identity-routes \
        --service <Azure-Spring-Apps-service-instance-name> \
        --app-name identity-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/identity-service.json
    

Konfigurieren des einmaligen Anmeldens für Spring Cloud Gateway

Sie können Spring Cloud Gateway für die Authentifizierung von Anforderungen per einmaligem Anmelden konfigurieren. Führen Sie die folgenden Schritte aus, um Spring Cloud Gateway für die Verwendung des einmaligen Anmeldens zu konfigurieren:

  1. Verwenden Sie die folgenden Befehle, um Spring Cloud Gateway für die Verwendung des einmaligen Anmeldens zu konfigurieren:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    az spring gateway update \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*" \
        --client-id <client-id> \
        --client-secret <client-secret> \
        --scope "openid,profile" \
        --issuer-uri <issuer-uri>
    
  2. Weisen Sie die Warenkorbdienstanwendung an, Spring Cloud Gateway für die Authentifizierung zu verwenden. Verwenden Sie den folgenden Befehl, um die erforderlichen Umgebungsvariablen bereitzustellen:

    az spring app update \
        --resource-group <resource-group-name> \
        --name cart-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --env "AUTH_URL=https://${GATEWAY_URL}" "CART_PORT=8080"
    
  3. Weisen Sie die Bestelldienstanwendung an, Spring Cloud Gateway für die Authentifizierung zu verwenden. Verwenden Sie den folgenden Befehl, um die erforderlichen Umgebungsvariablen bereitzustellen:

    az spring app update \
        --resource-group <resource-group-name> \
        --name order-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --env "AcmeServiceSettings__AuthUrl=https://${GATEWAY_URL}"
    
  4. Verwenden Sie den folgenden Befehl, um die URL für Spring Cloud Gateway abzurufen:

    echo "https://${GATEWAY_URL}"
    

    Sie können die Ausgabe-URL in einem Browser öffnen, um die aktualisierte Anwendung zu erkunden. Die Anmeldefunktion ist jetzt in Betrieb, sodass Sie dem Warenkorb Elemente hinzufügen und Bestellungen aufgeben können. Nachdem Sie sich angemeldet haben, zeigt die Schaltfläche „Kundeninformationen“ den Namen des angemeldeten Benutzers an.

Konfigurieren des einmaligen Anmeldens für das API-Portal

Sie können das API-Portal for VMware Tanzu so konfigurieren, dass einmaliges Anmelden verwendet wird, um eine Authentifizierung vor dem Erkunden von APIs anzufordern. Verwenden Sie die folgenden Befehle, um einmaliges Anmelden für das API-Portal zu konfigurieren:

export PORTAL_URL=$(az spring api-portal show \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')

az spring api-portal update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --client-id <client-id> \
    --client-secret <client-secret> \
    --scope "openid,profile,email" \
    --issuer-uri <issuer-uri>

Verwenden Sie die folgenden Befehle, um die URL für das API-Portal abzurufen:

export PORTAL_URL=$(az spring api-portal show \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')

echo "https://${PORTAL_URL}"

Sie können die Ausgabe-URL in einem Browser öffnen, um die Anwendungs-APIs zu erkunden. Sie werden aufgefordert, sich anzumelden, bevor Sie die APIs erkunden können.


Bereinigen von Ressourcen

Falls Sie mit weiteren Schnellstartanleitungen und Tutorials fortfahren möchten, sollten Sie die Ressourcen nicht bereinigen. Wenn Sie die Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Dadurch werden die Ressourcen in der Ressourcengruppe gelöscht. Wenn Sie die Ressourcengruppe mithilfe der Azure CLI löschen möchten, verwenden Sie die folgenden Befehle:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Nächste Schritte

Fahren Sie mit einem der folgenden optionalen Schnellstarts fort: