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
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En licens för Azure Spring Apps Enterprise-planen. Mer information finns i Enterprise-plan på Azure Marketplace.
- Azure CLI version 2.45.0 eller senare.
- Git.
- jq
- Azure Spring Apps Enterprise-plantillägget. Använd följande kommando för att ta bort tidigare versioner och installera det senaste Enterprise-plantillägget. Om du tidigare har installerat
spring-cloud
tillägget avinstallerar du det för att undvika konfigurations- och versionsmatchningar.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Slutför stegen i Skapa och distribuera appar till Azure Spring Apps med hjälp av Enterprise-planen.
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.
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"
Client ID
Hämta ochClient Secret
för din identitetsprovider.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 denissuer-uri
angivna ärhttps://example.com
görs till exempel en konfigurationsbegäran för OpenID-providern tillhttps://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.
JWK URI
Hämta för din identitetsprovider för användning senare. VanligtvisJWK 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.
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
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
Använd följande kommando för att tilldela tjänstens huvudnamn till programregistreringen:
az ad sp create --id ${APPLICATION_ID}
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"
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'
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'
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"
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.
Gå till projektmappen.
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>
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>
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>
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>"
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:
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>
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"
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}"
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: