Hızlı Başlangıç: Azure Spring Apps Kurumsal planını kullanarak uygulamalar için çoklu oturum açmayı yapılandırma
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
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
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure Spring Apps Kurumsal planı için bir lisans. Daha fazla bilgi için bkz. Azure Market'de kurumsal plan.
- Azure CLI sürüm 2.45.0 veya üzeri.
- Git.
- jq
- Azure Spring Apps Kurumsal plan uzantısı. Önceki sürümleri kaldırmak ve en son Kurumsal plan uzantısını yüklemek için aşağıdaki komutu kullanın. Uzantıyı
spring-cloud
daha önce yüklediyseniz yapılandırma ve sürüm uyuşmazlıklarını önlemek için uzantıyı kaldırın.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Kurumsal planı kullanarak Uygulamaları derleme ve Azure Spring Apps'e dağıtma bölümünde yer alan adımları tamamlayın.
Ç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.
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"
Client ID
Kimlik sağlayıcınız için ve'yiClient Secret
alın.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 isehttps://example.com
, öğesine bir OpenID Sağlayıcısı Yapılandırma İsteği yapılırhttps://example.com/.well-known/openid-configuration
. Sonucun bir OpenID Sağlayıcısı Yapılandırma Yanıtı olması beklenir.Not
Yalnızca OpenID Connect Bulma protokollerini destekleyen yetkilendirme sunucularını kullanabilirsiniz.
Daha sonra kullanmak üzere kimlik sağlayıcınız için öğesini
JWK URI
alın. genellikleJWK URI
veya${ISSUER_URI}/<version>/keys
biç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.
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
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
Uygulama kaydına hizmet sorumlusu atamak için aşağıdaki komutu kullanın:
az ad sp create --id ${APPLICATION_ID}
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"
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'
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'
öğesini almak
Issuer URI
iç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"
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.
Proje klasörüne gidin.
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>
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>
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>
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>"
İ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:
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>
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"
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}"
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: