Rychlý start: Konfigurace jednotného přihlašování pro aplikace pomocí plánu Azure Spring Apps Enterprise

Poznámka:

Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.

Tento článek se vztahuje na:❌ Basic/Standard ✔️ Enterprise

V tomto rychlém startu se dozvíte, jak nakonfigurovat jednotné přihlašování pro aplikace spuštěné v plánu Azure Spring Apps Enterprise.

Požadavky

Příprava přihlašovacích údajů jednotného přihlašování

Pokud chcete pro aplikaci nakonfigurovat jednotné přihlašování, musíte připravit přihlašovací údaje. Následující části popisují postup použití stávajícího poskytovatele nebo zřízení registrace aplikace s ID Microsoft Entra.

Použití existujícího poskytovatele

Podle těchto kroků nakonfigurujte jednotné přihlašování pomocí existujícího zprostředkovatele identity. Pokud zřizujete registraci aplikace Microsoft Entra, přeskočte k následující části, vytvořte a nakonfigurujte registraci aplikace s ID Microsoft Entra.

  1. Nakonfigurujte existujícího zprostředkovatele identity tak, aby umožňoval přesměrování zpět na bránu Spring Cloud pro VMware Tanzu a portál rozhraní API pro VMware Tanzu. Brána Spring Cloud má jeden identifikátor URI, který umožňuje opětovné zadání do brány. Portál API má dvě identifikátory URI pro podporu uživatelského rozhraní a základního rozhraní API. Následující příkazy načtou tyto identifikátory URI, které přidáte do konfigurace poskytovatele jednotného přihlašování.

    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. Získejte zprostředkovatele Client ID identity a Client Secret pro vašeho zprostředkovatele identity.

  3. Získejte zprostředkovatele Issuer URI identity. Zprostředkovatel musíte nakonfigurovat s identifikátorem URI vystavitele, což je identifikátor URI, který jako identifikátor vystavitele používá. Pokud je https://example.comzadaný issuer-uri například , pak se provede požadavek konfigurace zprostředkovatele OpenID do https://example.com/.well-known/openid-configuration. Očekává se, že výsledkem bude odpověď na konfiguraci zprostředkovatele OpenID.

    Poznámka:

    Můžete použít pouze autorizační servery, které podporují Protokol OpenID Připojení Discovery.

  4. Získejte zprostředkovatele JWK URI identity pro pozdější použití. Obvykle JWK URI má tvar ${ISSUER_URI}/keys nebo ${ISSUER_URI}/<version>/keys. Aplikace Služby identit používá veřejné webové klíče JSON (JWK) k ověření webových tokenů JSON (JWT) vydaných autorizačním serverem zprostředkovatele identity jednotného přihlašování.

Vytvoření a konfigurace registrace aplikace pomocí Microsoft Entra ID

Chcete-li zaregistrovat aplikaci v Microsoft Entra ID, postupujte podle těchto kroků. Pokud používáte přihlašovací údaje existujícího zprostředkovatele, přeskočte k následující části nasazení aplikace Služby identit.

  1. Pomocí následujícího příkazu vytvořte registraci aplikace s ID Microsoft Entra a uložte výstup:

    az ad app create --display-name <app-registration-name> > ad.json
    
  2. Pomocí následujícího příkazu načtěte ID aplikace a shromážděte tajný klíč klienta:

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
    
  3. Pomocí následujícího příkazu přiřaďte instanční objekt k registraci aplikace:

    az ad sp create --id ${APPLICATION_ID}
    
  4. Pomocí následujících příkazů načtěte adresy URL pro bránu Spring Cloud a portál rozhraní API a přidejte potřebné adresy URL odpovědí do registrace aplikace 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. K načtení aplikace Client IDpoužijte následující příkaz . Uložte výstup pro pozdější použití v tomto rychlém startu.

    cat sso.json | jq -r '.appId'
    
  6. K načtení aplikace Client Secretpoužijte následující příkaz . Uložte výstup pro pozdější použití v tomto rychlém startu.

    cat sso.json | jq -r '.password'
    
  7. K načtení souboru Issuer URIpoužijte následující příkaz . Uložte výstup pro pozdější použití v tomto rychlém startu.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
    
  8. JWK URI Načtěte z výstupu následujícího příkazu. Aplikace Služby identit používá veřejné webové klíče JSON (JWK) k ověření webových tokenů JSON (JWT) vydaných službou Active Directory.

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

Nasazení aplikace Služby identit

K dokončení jednotného přihlašování použijte následující postup k nasazení aplikace Služby identit. Aplikace Služby identit poskytuje jednu trasu, která vám pomůže identifikovat uživatele.

  1. Přejděte do složky projektu.

  2. K vytvoření identity-service aplikace použijte následující příkaz:

    az spring app create \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  3. Pomocí následujícího příkazu povolte externalizovanou konfiguraci služby identit vazbou na službu 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. Pomocí následujícího příkazu povolte zjišťování a registraci služby identity vazbou na registr služby:

    az spring service-registry bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  5. K nasazení služby identit použijte následující příkaz:

    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. Ke směrování požadavků do služby identit použijte následující příkaz:

    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
    

Konfigurace jednotného přihlašování pro bránu Spring Cloud

Bránu Spring Cloud můžete nakonfigurovat tak, aby ověřila požadavky pomocí jednotného přihlašování. Pokud chcete nakonfigurovat bránu Spring Cloud tak, aby používala jednotné přihlašování, postupujte takto:

  1. Pomocí následujících příkazů nakonfigurujte bránu Spring Cloud tak, aby používala jednotné přihlašování:

    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. Řekněte aplikaci služby košíku, aby k ověřování používala bránu Spring Cloud. Pomocí následujícího příkazu zadejte potřebné proměnné prostředí:

    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. Požádejte aplikaci služby objednávek, aby k ověřování používala bránu Spring Cloud. Pomocí následujícího příkazu zadejte potřebné proměnné prostředí:

    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. Pomocí následujícího příkazu načtěte adresu URL brány Spring Cloud:

    echo "https://${GATEWAY_URL}"
    

    V prohlížeči můžete otevřít výstupní adresu URL a prozkoumat aktualizovanou aplikaci. Funkce Přihlášení je nyní funkční a umožňuje přidávat položky do košíku a zadávat objednávky. Po přihlášení se na tlačítku s informacemi o zákazníci zobrazí přihlášené uživatelské jméno.

Konfigurace jednotného přihlašování pro portál API

Portál rozhraní API pro VMware Tanzu můžete nakonfigurovat tak, aby před prozkoumáním rozhraní API vyžadoval jednotné přihlašování. Ke konfiguraci jednotného přihlašování pro portál ROZHRANÍ API použijte následující příkazy:

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>

Pomocí následujících příkazů načtěte adresu URL portálu 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}"

Výstupní adresu URL můžete otevřít v prohlížeči a prozkoumat rozhraní API aplikace. Před prozkoumáním rozhraní API vás nasměruje, abyste se přihlásili.


Vyčištění prostředků

Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, můžete tyto prostředky ponechat na místě. Pokud už ji nepotřebujete, odstraňte skupinu prostředků, která odstraní prostředky ve skupině prostředků. Pokud chcete odstranit skupinu prostředků pomocí Azure CLI, použijte následující příkazy:

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

Další kroky

Pokračujte k některému z následujících volitelných rychlých startů: