Snabbstart: Konfigurera enkel inloggning för program med hjälp av Azure Spring Apps Enterprise-planen

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

Den här artikeln gäller för:❌ Basic/Standard ✔️ Enterprise

Den här snabbstarten visar hur du konfigurerar enkel inloggning för program som körs på Azure Spring Apps Enterprise-planen.

Förutsättningar

Förbereda autentiseringsuppgifter för enkel inloggning

För att konfigurera enkel inloggning för programmet måste du förbereda autentiseringsuppgifterna. I följande avsnitt beskrivs steg för att använda en befintlig leverantör eller etablera en programregistrering med Microsoft Entra-ID.

Använda en befintlig provider

Följ de här stegen för att konfigurera enkel inloggning med hjälp av en befintlig identitetsprovider. Om du etablerar en Microsoft Entra-appregistrering går du vidare till följande avsnitt: Skapa och konfigurera en programregistrering med Microsoft Entra-ID.

  1. Konfigurera din befintliga identitetsprovider för att tillåta omdirigeringar tillbaka till Spring Cloud Gateway för VMware Tanzu och API-portalen för VMware Tanzu. Spring Cloud Gateway har en enda URI för att tillåta återinträde till gatewayen. API-portalen har två URI:er för att stödja användargränssnittet och det underliggande API:et. Följande kommandon hämtar dessa URI:er som du lägger till i konfigurationen för din provider för enkel inloggning.

    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. Client ID Hämta och Client Secret för din identitetsprovider.

  3. Issuer URI Hämta för din identitetsprovider. Du måste konfigurera providern med en utfärdar-URI, vilket är den URI som den hävdar som utfärdaridentifierare. Om den issuer-uri angivna är https://example.comgörs till exempel en konfigurationsbegäran för OpenID-providern till https://example.com/.well-known/openid-configuration. Resultatet förväntas bli ett konfigurationssvar för OpenID-providern.

    Kommentar

    Du kan bara använda auktoriseringsservrar som stöder OpenID Connect Discovery-protokollet.

  4. JWK URI Hämta för din identitetsprovider för användning senare. Vanligtvis JWK URI tar formuläret ${ISSUER_URI}/keys eller ${ISSUER_URI}/<version>/keys. Identity Service-programmet använder de offentliga JSON-webbnycklarna (JWK) för att verifiera JSON-webbtoken (JWT) som utfärdats av din identitetsproviders auktoriseringsserver för enkel inloggning.

Skapa och konfigurera en programregistrering med Microsoft Entra-ID

Följ dessa steg för att registrera programmet med Microsoft Entra-ID. Om du använder en befintlig providers autentiseringsuppgifter går du vidare till följande avsnitt, Distribuera identitetstjänstprogrammet.

  1. Använd följande kommando för att skapa en programregistrering med Microsoft Entra-ID och spara utdata:

    az ad app create --display-name <app-registration-name> > ad.json
    
  2. Använd följande kommando för att hämta program-ID:t och samla in klienthemligheten:

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
    
  3. Använd följande kommando för att tilldela tjänstens huvudnamn till programregistreringen:

    az ad sp create --id ${APPLICATION_ID}
    
  4. Använd följande kommandon för att hämta URL:er för Spring Cloud Gateway och API-portalen och lägga till nödvändiga svars-URL:er i Active Directory App Registration.

    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. Använd följande kommando för att hämta programmets Client ID. Spara utdata som ska användas senare i den här snabbstarten.

    cat sso.json | jq -r '.appId'
    
  6. Använd följande kommando för att hämta programmets Client Secret. Spara utdata som ska användas senare i den här snabbstarten.

    cat sso.json | jq -r '.password'
    
  7. Använd följande kommando för att hämta Issuer URI. Spara utdata som ska användas senare i den här snabbstarten.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
    
  8. JWK URI Hämta från utdata från följande kommando. Identity Service-programmet använder de offentliga JSON-webbnycklarna (JWK) för att verifiera JSON-webbtoken (JWT) som utfärdats av Active Directory.

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

Distribuera Identity Service-programmet

Om du vill slutföra enkel inloggning använder du följande steg för att distribuera Identity Service-programmet. Identity Service-programmet tillhandahåller en enda väg som hjälper dig att identifiera användaren.

  1. Gå till projektmappen.

  2. Använd följande kommando för att skapa identity-service programmet:

    az spring app create \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  3. Använd följande kommando för att aktivera externaliserad konfiguration för identitetstjänsten genom att binda till Application Configuration Service:

    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  4. Använd följande kommando för att aktivera tjänstidentifiering och registrering för identitetstjänsten genom att binda till Service Registry:

    az spring service-registry bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  5. Använd följande kommando för att distribuera identitetstjänsten:

    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. Använd följande kommando för att dirigera begäranden till identitetstjänsten:

    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
    

Konfigurera enkel inloggning för Spring Cloud Gateway

Du kan konfigurera Spring Cloud Gateway för att autentisera begäranden med enkel inloggning. Följ dessa steg för att konfigurera Spring Cloud Gateway att använda enkel inloggning:

  1. Använd följande kommandon för att konfigurera Spring Cloud Gateway att använda enkel inloggning:

    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. Instruera kundvagnstjänstprogrammet att använda Spring Cloud Gateway för autentisering. Använd följande kommando för att tillhandahålla nödvändiga miljövariabler:

    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. Instruera beställningstjänstprogrammet att använda Spring Cloud Gateway för autentisering. Använd följande kommando för att tillhandahålla nödvändiga miljövariabler:

    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. Använd följande kommando för att hämta URL:en för Spring Cloud Gateway:

    echo "https://${GATEWAY_URL}"
    

    Du kan öppna utdata-URL:en i en webbläsare för att utforska det uppdaterade programmet. Funktionen Logga in fungerar nu, så att du kan lägga till objekt i kundvagnen och göra beställningar. När du har loggat in visar knappen kundinformation det inloggade användarnamnet.

Konfigurera enkel inloggning för API-portalen

Du kan konfigurera API-portalen för VMware Tanzu att använda enkel inloggning för att kräva autentisering innan du utforskar API:er. Använd följande kommandon för att konfigurera enkel inloggning för API-portalen:

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>

Använd följande kommandon för att hämta URL:en för API-portalen:

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}"

Du kan öppna utdata-URL:en i en webbläsare för att utforska program-API:erna. Du uppmanas att logga in innan du utforskar API:er.


Rensa resurser

Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. Ta bort resursgruppen när den inte längre behövs, vilket tar bort resurserna i resursgruppen. Om du vill ta bort resursgruppen med hjälp av Azure CLI använder du följande kommandon:

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

Nästa steg

Fortsätt till någon av följande valfria snabbstarter: