Share via


Hızlı Başlangıç: Azure Spring Apps Kurumsal planını kullanarak uygulamalar için çoklu oturum açmayı yapılandırma

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir:❌ Temel/Standart ✔️ Kurumsal

Bu hızlı başlangıçta, Azure Spring Apps Enterprise planında çalışan uygulamalar için çoklu oturum açmayı yapılandırma adımları gösterilmektedir.

Önkoşullar

Çoklu oturum açma kimlik bilgilerini hazırlama

Uygulamada çoklu oturum açmayı yapılandırmak için kimlik bilgilerini hazırlamanız gerekir. Aşağıdaki bölümlerde, mevcut sağlayıcıyı kullanma veya Microsoft Entra Id ile uygulama kaydı sağlama adımları açıklanmaktadır.

Mevcut sağlayıcıyı kullanma

Mevcut kimlik sağlayıcısını kullanarak çoklu oturum açmayı yapılandırmak için bu adımları izleyin. Microsoft Entra Uygulama Kaydı oluşturuyorsanız, Aşağıdaki Microsoft Entra Id ile uygulama kaydı oluşturma ve yapılandırma bölümüne atlayın.

  1. Mevcut kimlik sağlayıcınızı VMware Tanzu için Spring Cloud Gateway'e ve VMware Tanzu için API portalına yeniden yönlendirmelere izin verecek şekilde yapılandırın. Spring Cloud Gateway,ağ geçidine yeniden girişe izin vermek için tek bir URI'ye sahiptir. API portalında kullanıcı arabirimini ve temel alınan API'yi desteklemeye yönelik iki URI vardır. Aşağıdaki komutlar, çoklu oturum açma sağlayıcınızın yapılandırmasına eklediğiniz bu URI'leri alır.

    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 Kimlik sağlayıcınız için ve'yi Client Secret alın.

  3. Kimlik sağlayıcınız için öğesini Issuer URI alın. Sağlayıcıyı Veren Tanımlayıcısı olarak onayladığı URI olan veren URI'siyle yapılandırmanız gerekir. Örneğin, issuer-uri sağlanan ise https://example.com, öğesine bir OpenID Sağlayıcısı Yapılandırma İsteği yapılır https://example.com/.well-known/openid-configuration. Sonucun bir OpenID Sağlayıcısı Yapılandırma Yanıtı olması beklenir.

    Not

    Yalnızca OpenID Bağlan Bulma protokollerini destekleyen yetkilendirme sunucularını kullanabilirsiniz.

  4. Daha sonra kullanmak üzere kimlik sağlayıcınız için öğesini JWK URI alın. genellikle JWK URI veya ${ISSUER_URI}/<version>/keysbiçimini ${ISSUER_URI}/keys alır. Kimlik Hizmeti uygulaması, çoklu oturum açma kimlik sağlayıcınızın yetkilendirme sunucusu tarafından verilen JSON Web Belirteçlerini (JWT) doğrulamak için genel JSON Web Anahtarlarını (JWK) kullanır.

Microsoft Entra Id ile uygulama kaydı oluşturma ve yapılandırma

Uygulamayı Microsoft Entra Id ile kaydetmek için aşağıdaki adımları izleyin. Mevcut bir sağlayıcının kimlik bilgilerini kullanıyorsanız, Aşağıdaki Kimlik Hizmeti uygulamasını dağıtma bölümüne atlayın.

  1. Microsoft Entra Id ile bir uygulama kaydı oluşturmak ve çıkışı kaydetmek için aşağıdaki komutu kullanın:

    az ad app create --display-name <app-registration-name> > ad.json
    
  2. Uygulama kimliğini almak ve istemci gizli dizisini toplamak için aşağıdaki komutu kullanın:

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
    
  3. Uygulama kaydına hizmet sorumlusu atamak için aşağıdaki komutu kullanın:

    az ad sp create --id ${APPLICATION_ID}
    
  4. Spring Cloud Gateway ve API portalı url'lerini almak ve gerekli Yanıt URL'lerini Active Directory Uygulama Kaydı'na eklemek için aşağıdaki komutları kullanın.

    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. Uygulamanın Client IDöğesini almak için aşağıdaki komutu kullanın. Bu hızlı başlangıcın ilerleyen bölümlerinde kullanmak üzere çıkışı kaydedin.

    cat sso.json | jq -r '.appId'
    
  6. Uygulamanın Client Secretöğesini almak için aşağıdaki komutu kullanın. Bu hızlı başlangıcın ilerleyen bölümlerinde kullanmak üzere çıkışı kaydedin.

    cat sso.json | jq -r '.password'
    
  7. öğesini almak Issuer URIiçin aşağıdaki komutu kullanın. Bu hızlı başlangıcın ilerleyen bölümlerinde kullanmak üzere çıkışı kaydedin.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
    
  8. JWK URI aşağıdaki komutun çıktısından öğesini alın. Kimlik Hizmeti uygulaması, Active Directory tarafından verilen JSON Web Belirteçlerini (JWT) doğrulamak için genel JSON Web Anahtarlarını (JWK) kullanır.

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

Kimlik Hizmeti uygulamasını dağıtma

Çoklu oturum açma deneyimini tamamlamak için, Kimlik Hizmeti uygulamasını dağıtmak için aşağıdaki adımları kullanın. Kimlik Hizmeti uygulaması, kullanıcıyı tanımlamaya yardımcı olmak için tek bir yol sağlar.

  1. Proje klasörüne gidin.

  2. Uygulamayı oluşturmak identity-service için aşağıdaki komutu kullanın:

    az spring app create \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  3. Uygulama Yapılandırma Hizmeti'ne bağlanarak kimlik hizmeti için dışlanmış yapılandırmayı etkinleştirmek için aşağıdaki komutu kullanın:

    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  4. Hizmet Kayıt Defteri'ne bağlanarak kimlik hizmeti için hizmet bulmayı ve kaydı etkinleştirmek için aşağıdaki komutu kullanın:

    az spring service-registry bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  5. Kimlik hizmetini dağıtmak için aşağıdaki komutu kullanın:

    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. İstekleri kimlik hizmetine yönlendirmek için aşağıdaki komutu kullanın:

    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
    

Spring Cloud Gateway için çoklu oturum açmayı yapılandırma

Spring Cloud Gateway'i çoklu oturum açma kullanarak isteklerin kimliğini doğrulayacak şekilde yapılandırabilirsiniz. Spring Cloud Gateway'i çoklu oturum açma kullanacak şekilde yapılandırmak için şu adımları izleyin:

  1. Spring Cloud Gateway'i çoklu oturum açma kullanacak şekilde yapılandırmak için aşağıdaki komutları kullanı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. Sepet hizmeti uygulamasına kimlik doğrulaması için Spring Cloud Gateway'i kullanmasını sağlayın. Gerekli ortam değişkenlerini sağlamak için aşağıdaki komutu kullanın:

    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. Sipariş hizmeti uygulamasına kimlik doğrulaması için Spring Cloud Gateway'i kullanmasını sağlayın. Gerekli ortam değişkenlerini sağlamak için aşağıdaki komutu kullanın:

    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. Spring Cloud Gateway URL'sini almak için aşağıdaki komutu kullanın:

    echo "https://${GATEWAY_URL}"
    

    Güncelleştirilmiş uygulamayı keşfetmek için çıkış URL'sini tarayıcıda açabilirsiniz. Oturum Aç işlevi artık çalışır durumdadır ve sepete ürün eklemenizi ve sipariş vermenizi sağlar. Oturum açtıktan sonra müşteri bilgileri düğmesi oturum açmış kullanıcı adını görüntüler.

API portalı için çoklu oturum açmayı yapılandırma

API'leri keşfetmeden önce kimlik doğrulaması gerektirmek üzere VMware Tanzu için API portalını çoklu oturum açmayı kullanacak şekilde yapılandırabilirsiniz. API portalında çoklu oturum açmayı yapılandırmak için aşağıdaki komutları kullanın:

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>

API portalının URL'sini almak için aşağıdaki komutları kullanın:

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

Uygulama API'lerini keşfetmek için çıkış URL'sini tarayıcıda açabilirsiniz. API'leri keşfetmeden önce oturum açmaya yönlendirilirsiniz.


Kaynakları temizleme

Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Azure CLI kullanarak kaynak grubunu silmek için aşağıdaki komutları kullanın:

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

Sonraki adımlar

Aşağıdaki isteğe bağlı hızlı başlangıçlardan herhangi birine geçin: