Guida introduttiva: Configurare l'accesso Single Sign-On per le applicazioni usando il piano Azure Spring Apps Enterprise

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Questo articolo si applica a:❌ Basic/Standard ✔️ Enterprise

Questa guida introduttiva illustra come configurare l'accesso Single Sign-On per le applicazioni in esecuzione nel piano Azure Spring Apps Enterprise.

Prerequisiti

Preparare le credenziali di Single Sign-On

Per configurare l'accesso Single Sign-On per l'applicazione, è necessario preparare le credenziali. Le sezioni seguenti descrivono i passaggi per l'uso di un provider esistente o il provisioning di una registrazione dell'applicazione con Microsoft Entra ID.

Usare un provider esistente

Seguire questa procedura per configurare l'accesso Single Sign-On usando un provider di identità esistente. Se si esegue il provisioning di una registrazione dell'app Microsoft Entra, passare alla sezione seguente Creare e configurare una registrazione dell'applicazione con Microsoft Entra ID.

  1. Configurare il provider di identità esistente per consentire il reindirizzamento a Spring Cloud Gateway per VMware Tanzu e al portale API per VMware Tanzu. Spring Cloud Gateway ha un singolo URI per consentire la reinsezione nel gateway. Il portale API include due URI per supportare l'interfaccia utente e l'API sottostante. I comandi seguenti recuperano questi URI aggiunti alla configurazione del provider single sign-on.

    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. Ottenere e Client IDClient Secret per il provider di identità.

  3. Ottenere per Issuer URI il provider di identità. È necessario configurare il provider con un URI dell'autorità di certificazione, ovvero l'URI che asserisce come identificatore dell'autorità di certificazione. Ad esempio, se l'oggetto issuer-uri fornito è https://example.com, viene effettuata una richiesta di configurazione del provider OpenID a https://example.com/.well-known/openid-configuration. Il risultato dovrebbe essere una risposta di configurazione del provider OpenID.

    Nota

    È possibile usare solo server di autorizzazione che supportano il protocollo OpenID Connessione Discovery.

  4. Ottenere per JWK URI il provider di identità da usare in un secondo momento. In JWK URI genere assume la forma ${ISSUER_URI}/keys o ${ISSUER_URI}/<version>/keys. L'applicazione del servizio di gestione delle identità usa le chiavi WEB JSON pubbliche (JWK) per verificare i token JSON Web (JWT) emessi dal server di autorizzazione del provider di identità Single Sign-On.

Creare e configurare una registrazione dell'applicazione con Microsoft Entra ID

Per registrare l'applicazione con Microsoft Entra ID, seguire questa procedura. Se si usano le credenziali di un provider esistente, passare alla sezione seguente, Distribuire l'applicazione del servizio di gestione delle identità.

  1. Usare il comando seguente per creare una registrazione dell'applicazione con Microsoft Entra ID e salvare l'output:

    az ad app create --display-name <app-registration-name> > ad.json
    
  2. Usare il comando seguente per recuperare l'ID applicazione e raccogliere il segreto client:

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
    
  3. Usare il comando seguente per assegnare un'entità servizio alla registrazione dell'applicazione:

    az ad sp create --id ${APPLICATION_ID}
    
  4. Usare i comandi seguenti per recuperare gli URL per Spring Cloud Gateway e il portale api e aggiungere gli URL di risposta necessari alla registrazione dell'app Active Directory.

    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. Usare il comando seguente per recuperare l'oggetto dell'applicazione Client ID. Salvare l'output da usare più avanti in questa guida introduttiva.

    cat sso.json | jq -r '.appId'
    
  6. Usare il comando seguente per recuperare l'oggetto dell'applicazione Client Secret. Salvare l'output da usare più avanti in questa guida introduttiva.

    cat sso.json | jq -r '.password'
    
  7. Usare il comando seguente per recuperare .Issuer URI Salvare l'output da usare più avanti in questa guida introduttiva.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
    
  8. Recuperare l'oggetto JWK URI dall'output del comando seguente. L'applicazione del servizio di gestione delle identità usa le chiavi Web JSON pubbliche (JWK) per verificare i token JSON Web (JWT) emessi da Active Directory.

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

Distribuire l'applicazione del servizio di gestione delle identità

Per completare l'esperienza di Single Sign-On, seguire questa procedura per distribuire l'applicazione del servizio di gestione delle identità. L'applicazione del servizio di gestione delle identità fornisce una singola route per facilitare l'identificazione dell'utente.

  1. Passare alla cartella del progetto.

  2. Usare il comando seguente per creare l'applicazione identity-service :

    az spring app create \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  3. Usare il comando seguente per abilitare la configurazione esterna per il servizio di gestione delle identità tramite l'associazione al servizio di configurazione dell'applicazione:

    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  4. Usare il comando seguente per abilitare l'individuazione e la registrazione del servizio di gestione delle identità tramite l'associazione al Registro di sistema del servizio:

    az spring service-registry bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  5. Usare il comando seguente per distribuire il servizio di identità:

    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. Usare il comando seguente per instradare le richieste al servizio di identità:

    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
    

Configurare l'accesso Single Sign-On per Spring Cloud Gateway

È possibile configurare Spring Cloud Gateway per autenticare le richieste tramite Single Sign-On. Per configurare Spring Cloud Gateway per l'uso dell'accesso Single Sign-On, seguire questa procedura:

  1. Usare i comandi seguenti per configurare Spring Cloud Gateway per l'uso dell'accesso Single Sign-On:

    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. Indicare all'applicazione di servizio carrello di usare Spring Cloud Gateway per l'autenticazione. Usare il comando seguente per fornire le variabili di ambiente necessarie:

    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. Indicare all'applicazione di servizio di ordinare di usare Spring Cloud Gateway per l'autenticazione. Usare il comando seguente per fornire le variabili di ambiente necessarie:

    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. Usare il comando seguente per recuperare l'URL per Spring Cloud Gateway:

    echo "https://${GATEWAY_URL}"
    

    È possibile aprire l'URL di output in un browser per esplorare l'applicazione aggiornata. La funzione Log In è ora operativa, consentendo di aggiungere elementi al carrello e di effettuare ordini. Dopo l'accesso, il pulsante informazioni sul cliente visualizza il nome utente connesso.

Configurare l'accesso Single Sign-On per il portale api

È possibile configurare il portale API per VMware Tanzu per l'uso dell'accesso Single Sign-On per richiedere l'autenticazione prima di esplorare le API. Usare i comandi seguenti per configurare l'accesso Single Sign-On per il portale api:

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>

Usare i comandi seguenti per recuperare l'URL per il portale api:

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

È possibile aprire l'URL di output in un browser per esplorare le API dell'applicazione. Si viene indirizzati all'accesso prima di esplorare le API.


Pulire le risorse

Se si prevede di usare le guide di avvio rapido e le esercitazioni successive, è consigliabile non cancellare le risorse create. Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno. Per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure, usare i comandi seguenti:

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

Passaggi successivi

Continuare con uno degli argomenti di avvio rapido facoltativi seguenti: