Guida introduttiva: Configurare l'accesso Single Sign-On per le applicazioni usando il piano Azure Spring Apps Enterprise
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una licenza per il piano Enterprise di Azure Spring Apps. Per altre informazioni, vedere Piano aziendale in Azure Marketplace.
- Interfaccia della riga di comando di Azure versione 2.45.0 o successiva.
- Git.
- jq
- Estensione del piano Enterprise di Azure Spring Apps. Usare il comando seguente per rimuovere le versioni precedenti e installare l'estensione del piano Enterprise più recente. Se l'estensione
spring-cloud
è stata installata in precedenza, disinstallarla per evitare la mancata corrispondenza della configurazione e della versione.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Completare i passaggi descritti in Compilare e distribuire app in Azure Spring Apps usando il piano Enterprise.
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.
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"
Ottenere e
Client ID
Client Secret
per il provider di identità.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'oggettoissuer-uri
fornito èhttps://example.com
, viene effettuata una richiesta di configurazione del provider OpenID ahttps://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 Connect Discovery.
Ottenere per
JWK URI
il provider di identità da usare in un secondo momento. InJWK 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à.
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
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
Usare il comando seguente per assegnare un'entità servizio alla registrazione dell'applicazione:
az ad sp create --id ${APPLICATION_ID}
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"
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'
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'
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"
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.
Passare alla cartella del progetto.
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>
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>
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>
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>"
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:
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>
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"
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}"
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: