التشغيل السريع: تكوين تسجيل الدخول الأحادي للتطبيقات باستخدام خطة Azure Spring Apps Enterprise
إشعار
يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.
تنطبق هذه المقالة على:❌ Basic/Standard ✔️ Enterprise
يوضح لك هذا التشغيل السريع كيفية تكوين تسجيل الدخول الأحادي للتطبيقات التي تعمل على خطة Azure Spring Apps Enterprise.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
- ترخيص لخطة Azure Spring Apps Enterprise. لمزيد من المعلومات، راجع خطة المؤسسة في Azure Marketplace.
- إصدار Azure CLI 2.45.0 أو أعلى.
- Git.
- jq
- ملحق خطة Azure Spring Apps Enterprise. استخدم الأمر التالي لإزالة الإصدارات السابقة وتثبيت أحدث ملحق لخطة المؤسسة. إذا قمت بتثبيت الملحق
spring-cloud
مسبقًا، قم بإلغاء تثبيته لتجنب عدم تطابق التكوين والإصدار.az extension add --upgrade --name spring az extension remove --name spring-cloud
- أكمل الخطوات في إنشاء التطبيقات ونشرها في Azure Spring Apps باستخدام خطة Enterprise.
إعداد بيانات اعتماد تسجيل الدخول الأحادي
لتكوين تسجيل الدخول الأحادي للتطبيق، تحتاج إلى إعداد بيانات الاعتماد. تصف الأقسام التالية خطوات استخدام موفر موجود أو توفير تسجيل تطبيق باستخدام معرف Microsoft Entra.
استخدام موفر موجود
اتبع هذه الخطوات لتكوين تسجيل الدخول الأحادي باستخدام موفر هوية موجود. إذا كنت تقوم بتوفير تسجيل تطبيق Microsoft Entra، فانتقل إلى القسم التالي، قم بإنشاء وتكوين تسجيل تطبيق باستخدام معرف Microsoft Entra.
قم بتكوين موفر الهوية الحالي للسماح بإعادة التوجيه مرة أخرى إلى Spring Cloud Gateway ل VMware Tanzu ومدخل API ل VMware Tanzu. تحتوي Spring Cloud Gateway على URI واحد للسماح بإعادة الدخول إلى البوابة. يحتوي مدخل واجهة برمجة التطبيقات على معرفي URI لدعم واجهة المستخدم وواجهة برمجة التطبيقات الأساسية. تقوم الأوامر التالية باسترداد معرفات URI هذه التي تضيفها إلى تكوين موفر تسجيل الدخول الأحادي.
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
وClient Secret
لموفر الهوية الخاص بك.احصل على
Issuer URI
لموفر الهوية الخاص بك. يجب تكوين الموفر باستخدام URI المصدر، وهو URI الذي يؤكده كمعرف المصدر الخاص به. على سبيل المثال، إذا كانissuer-uri
المقدم هوhttps://example.com
، فسيتم إجراء طلب تكوين موفر OpenID إلىhttps://example.com/.well-known/openid-configuration
. ومن المتوقع أن تكون النتيجة استجابة تكوين موفّر OpenID.إشعار
يمكنك فقط استخدام خوادم التخويل التي تدعم بروتوكول OpenID الاتصال Discovery.
احصل على
JWK URI
لموفر الهوية لاستخدامه لاحقا.JWK URI
عادة ما يأخذ النموذج${ISSUER_URI}/keys
أو${ISSUER_URI}/<version>/keys
. يستخدم تطبيق خدمة الهوية مفاتيح ويب JSON العامة (JWK) للتحقق من رموز ويب JSON المميزة (JWT) الصادرة عن خادم تخويل موفر هوية تسجيل الدخول الأحادي.
إنشاء وتكوين تسجيل تطبيق باستخدام معرف Microsoft Entra
لتسجيل التطبيق باستخدام معرف Microsoft Entra، اتبع الخطوات التالية. إذا كنت تستخدم بيانات اعتماد موفر موجود، فانتقل إلى القسم التالي، نشر تطبيق خدمة الهوية.
استخدم الأمر التالي لإنشاء تسجيل تطبيق باستخدام معرف Microsoft Entra وحفظ الإخراج:
az ad app create --display-name <app-registration-name> > ad.json
استخدم الأمر التالي لاسترداد معرف التطبيق وجمع سر العميل:
export APPLICATION_ID=$(cat ad.json | jq -r '.appId') az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
استخدم الأمر التالي لتعيين كيان الخدمة لتسجيل التطبيق:
az ad sp create --id ${APPLICATION_ID}
استخدم الأوامر التالية لاسترداد عناوين URL ل Spring Cloud Gateway ومدخل API، وإضافة عناوين URL للرد الضرورية إلى تسجيل تطبيق 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"
استخدم الأمر التالي لاسترداد التطبيق
Client ID
. احفظ الإخراج لاستخدامه لاحقا في هذا التشغيل السريع.cat sso.json | jq -r '.appId'
استخدم الأمر التالي لاسترداد التطبيق
Client Secret
. احفظ الإخراج لاستخدامه لاحقا في هذا التشغيل السريع.cat sso.json | jq -r '.password'
استخدم الأمر التالي لاسترداد
Issuer URI
. احفظ الإخراج لاستخدامه لاحقا في هذا التشغيل السريع.export TENANT_ID=$(cat sso.json | jq -r '.tenant') echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
JWK URI
استرداد من إخراج الأمر التالي. يستخدم تطبيق خدمة الهوية مفاتيح ويب JSON العامة (JWK) للتحقق من رموز ويب JSON المميزة (JWT) الصادرة عن Active Directory.export TENANT_ID=$(cat sso.json | jq -r '.tenant') echo "https://login.microsoftonline.com/${TENANT_ID}/discovery/v2.0/keys"
نشر تطبيق خدمة الهوية
لإكمال تجربة تسجيل الدخول الأحادي، استخدم الخطوات التالية لنشر تطبيق خدمة الهوية. يوفر تطبيق خدمة الهوية مسارا واحدا للمساعدة في تحديد المستخدم.
انتقل إلى مجلد المشروع.
استخدم الأمر التالي لإنشاء
identity-service
التطبيق:az spring app create \ --resource-group <resource-group-name> \ --name identity-service \ --service <Azure-Spring-Apps-service-instance-name>
استخدم الأمر التالي لتمكين التكوين الخارجي لخدمة الهوية عن طريق الربط بخدمة تكوين التطبيق:
az spring application-configuration-service bind \ --resource-group <resource-group-name> \ --app identity-service \ --service <Azure-Spring-Apps-service-instance-name>
استخدم الأمر التالي لتمكين اكتشاف الخدمة وتسجيلها لخدمة الهوية عن طريق الربط بسجل الخدمة:
az spring service-registry bind \ --resource-group <resource-group-name> \ --app identity-service \ --service <Azure-Spring-Apps-service-instance-name>
استخدم الأمر التالي لنشر خدمة الهوية:
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>"
استخدم الأمر التالي لتوجيه الطلبات إلى خدمة الهوية:
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
يمكنك تكوين Spring Cloud Gateway لمصادقة الطلبات باستخدام تسجيل الدخول الأحادي. لتكوين Spring Cloud Gateway لاستخدام تسجيل الدخول الأحادي، اتبع الخطوات التالية:
استخدم الأوامر التالية لتكوين Spring Cloud Gateway لاستخدام تسجيل الدخول الأحادي:
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>
توجيه تطبيق خدمة عربة التسوق لاستخدام Spring Cloud Gateway للمصادقة. استخدم الأمر التالي لتوفير متغيرات البيئة الضرورية:
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"
توجيه تطبيق خدمة الطلب لاستخدام Spring Cloud Gateway للمصادقة. استخدم الأمر التالي لتوفير متغيرات البيئة الضرورية:
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}"
استخدم الأمر التالي لاسترداد عنوان URL ل Spring Cloud Gateway:
echo "https://${GATEWAY_URL}"
يمكنك فتح عنوان URL للإخراج في مستعرض لاستكشاف التطبيق المحدث. تعمل وظيفة تسجيل الدخول الآن، مما يسمح لك بإضافة عناصر إلى السلة ووضع الطلبات. بعد تسجيل الدخول، يعرض زر معلومات العميل اسم المستخدم الذي تم تسجيل الدخول له.
تكوين تسجيل الدخول الأحادي لمدخل API
يمكنك تكوين مدخل API ل VMware Tanzu لاستخدام تسجيل الدخول الأحادي لطلب المصادقة قبل استكشاف واجهات برمجة التطبيقات. استخدم الأوامر التالية لتكوين تسجيل الدخول الأحادي لمدخل 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>
استخدم الأوامر التالية لاسترداد عنوان URL لمدخل 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}"
يمكنك فتح عنوان محدد مواقع الويب للإخراج في مستعرض لاستكشاف واجهة برمجة التطبيقات للتطبيق. يتم توجيهك لتسجيل الدخول قبل استكشاف واجهات برمجة التطبيقات.
تنظيف الموارد
إذا كنت تخطط لمواصلة العمل بالبدايات السريعة والبرامج التعليمية اللاحقة، فقد ترغب في ترك هذه الموارد في مكانها. يمكنك حذف مجموعة الموارد عند انتهاء حاجتك إليها، وهذا يؤدي إلى حذف الموارد الموجودة في مجموعة الموارد. لحذف مجموعة الموارد باستخدام Azure CLI، استخدم الأوامر التالية:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
الخطوات التالية
تابع إلى أي من قوالب التشغيل السريع الاختيارية التالية:
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ