كيفية تفويض تسجيل مستخدم واشتراك المنتج
ينطبق على: المطور | أساسي | الإصدار 2 الأساسي | قياسي | الإصدار 2 القياسي | قسط
تفويض يُمكّن موقع الويب الخاص بك لامتلاك بيانات المستخدم وإجراء التحقق من الصحة المخصصة. مع التفويض، يمكنك التعامل مع تسجيل دخول/تسجيل دخول المطور (وعمليات إدارة الحساب ذات الصلة) واشتراك المنتج باستخدام موقع الويب الحالي، بدلا من الوظائف المضمنة في مدخل المطور.
تفويض تسجيل دخول المطور والاشتراك
لتفويض خيارات تسجيل دخول المطور والاشتراك وإدارة حساب المطور إلى موقعك الحالي على ويب، قم بإنشاء نقطة نهاية تفويض خاصة على موقعك. يعمل هذا التفويض الخاص كنقطة دخول لأي تسجيل الدخول/الاشتراك والطلبات ذات الصلة التي تم البدء بها من مدخل مطور APIM.
سيكون سير العمل النهائي على النحو التالي:
- ينقر المطور على ارتباط تسجيل الدخول أو الاشتراك أو ارتباط إدارة الحساب في مدخل مطور APIM.
- إعادة توجيه المتصفح إلى نقطة نهاية التفويض.
- تعيد نقطة نهاية التفويض في المقابل توجيه المستخدم إلى أو تقدم للمستخدم واجهة مستخدم تسجيل الدخول/الاشتراك أو إدارة الحساب.
- بعد اكتمال العملية، تتم إعادة توجيه المستخدم مرة أخرى إلى مدخل مطور APIM في الموقع الذي تركه.
إعداد APIM لتوجيه الطلبات عبر نقطة نهاية التفويض
في مدخل Azure، انتقل إلى مثيل API Management الخاص بك.
في القائمة اليسرى، ضمن مدخل المطور، حدد تفويض.
انقر فوق خانة الاختيار لتمكين تسجيل دخول المفوض وتسجيل الدخول.
قم بتحديد عنوان URL الخاص بنقطة نهاية التفويض الخاصة وأدخله في حقل عنوان URL لنقطة نهاية التفويض.
في الحقل مفتاح التحقق من التفويض ، إما:
- أدخل بيانات سرية تستخدم لحساب توقيع مقدم للتحقق من أن الطلب ينشأ من APIM.
- انقر فوق الزر إنشاء ل APIM لإنشاء مفتاح عشوائي لك.
انقر فوق حفظ.
أنشئ نقطة نهاية التفويض
الخطوات الموصى بها لإنشاء نقطة نهاية تفويض جديدة لتطبيقها على موقعك هي:
تلقي طلب في النموذج التالي، اعتمادا على العملية:
http://www.yourwebsite.com/apimdelegation?operation={operation}& returnUrl={URL للصفحة المصدر}&ملح={string}&sig={string}
-أو-
http://www.yourwebsite.com/apimdelegation?operation={operation}& userId={user ID of account}&salt={string}&sig={string}
معلمات استعلام:
المعلمة الوصف التشغيل تعريف ما هو نوع طلب التفويض. العمليات المتوفرة: SignIn، SignUp، ChangePassword، ChangeProfile، CloseAccount، SignOut. returnUrl في SignIn أو SignUp، عنوان URL للمكان الذي نقر فيه المستخدم على ارتباط تسجيل الدخول أو الاشتراك. المعرف الخاص بالمستخدم في ChangePassword و ChangeProfile و CloseAccount و SignOut، معرف المستخدم للحساب الذي ترغب في إدارته. Salt سلسلة salt خاصة تستخدم لحساب تجزئة الأمان. Sig شفرة تجزئة أمان محسوبة تستخدم للمقارنة مع التجزئة المحسوبة الخاصة بك. تحقق من الطلب يأتي من APIM Azure (اختياري، ولكن موصى به بشدة للأمان).
حساب تجزئة HMAC-SHA512 لسلسلة استنادا إلى معلمات استعلام returnUrl (أو UserId) والملح. على سبيل المثال، تحقق من مثال التعليمات البرمجية.
بالنسبة إلى SignIn وSignUp:
HMAC(salt + '\n' + returnUrl)
بالنسبة إلى ChangePassword و ChangeProfile و CloseAccount و SignOut:
HMAC(salt + '\n' + userId)
قارن التجزئة المحسوبة أعلاه بقيمة معامل طلب البحث sig . إذا تطابق المجزئون، فانتقل إلى الخطوة التالية. خلاف ذلك، قم برفض الطلب.
تحقق من تلقي طلب تسجيل الدخول/الاشتراك أو عملية إدارة الحساب.
قدم للمستخدم واجهة مستخدم تسجيل الدخول/الاشتراك أو إدارة الحساب.
بعد إكمال العملية من جانبك، قم بإدارة المستخدم في APIM. على سبيل المثال، إذا سجل المستخدم، أنشئ حسابا مقابلا له في APIM.
- إنشاء مستخدم مع APIM REST API.
- تعيين معرف المستخدم إما إلى نفس القيمة في مخزن المستخدم الخاص بك أو معرف جديد، تتبع بسهولة.
بعد تسجيل الدخول أو التسجيل، عند مصادقة المستخدم بنجاح:
طلب رمز وصول مشترك عبر APIM REST API.
إلحاق معلمة استعلام عنوان URL إلىURL SSO تلقيتها من استدعاء API أعلاه. على سبيل المثال:
https://contoso.developer.azure-api.net/signin-sso?token=<URL-encoded token>&returnUrl=%2Freturn%2Furl
أعد توجيه المستخدم إلى عنوان URL المنتج أعلاه.
تفويض اشتراك المنتج
يعمل التفويض لاشتراكات المنتجات بشكل مشابه لتفويض تسجيل دخول المستخدم / الاشتراك. يكون سير العمل النهائي كما يلي:
- يقوم المطور بتحديد منتج في APIM والنقر على زر الاشتراك.
- إعادة توجيه المتصفح إلى نقطة نهاية التفويض.
- تنفذ نقطة نهاية التفويض خطوات اشتراك المنتج المطلوبة، والتي تقوم بتصميمها. وقد تشمل ما يلي:
- إعادة التوجيه إلى صفحة أخرى لطلب معلومات الفواتير.
- طرح الأسئلة الإضافية.
- تخزين المعلومات وعدم الحاجة إلى أي إجراء عن طريق المستخدم.
تمكين وظيفة APIM
في صفحة التفويض، قم بالنقر فوق تفويض اشتراك المنتج.
أنشئ نقطة نهاية التفويض
الخطوات الموصى بها لإنشاء نقطة نهاية تفويض جديدة لتطبيقها على موقعك هي:
تلقي طلب في النموذج التالي، اعتمادا على العملية.
http://www.yourwebsite.com/apimdelegation?operation={operation}&p roductId={product to subscribe to}&userId={user making request}&salt={string}&sig={string}
-أو-
http://www.yourwebsite.com/apimdelegation?operation={operation}& subscriptionId={subscription to manage}&salt={string}&sig={string}
معلمات استعلام:
المعلمة الوصف التشغيل تعريف ما هو نوع طلب التفويض. خيارات طلبات اشتراك المنتج الصالحة هي: - الاشتراك: طلب اشتراك المستخدم لمنتج معين مع معرف المقدمة (انظر أدناه).
- إلغاء الاشتراك: طلب لإلغاء اشتراك مستخدم من منتج
productId في الاشتراك ، معرف المنتج الذي طلب المستخدم الاشتراك. المعرف الخاص بالمستخدم على الاشتراك، طلب معرف المستخدم. subscriptionId عند إلغاء الاشتراك، معرف اشتراك المنتج. Salt سلسلة salt خاصة تستخدم لحساب تجزئة الأمان. Sig شفرة تجزئة أمان محسوبة تستخدم للمقارنة مع التجزئة المحسوبة الخاصة بك. تحقق من أن الطلب قادم من APIM Azure (اختياري، ولكن يوصى به بشدة للأمان)
حساب HMAC-SHA512 لسلسلة استنادا إلى productId وuserId (أو subscriptionId) ومعلمات الاستعلام الملح:
للاشتراك:
HMAC(salt + '\n' + productId + '\n' + userId)
لإلغاء الاشتراك:
HMAC(salt + '\n' + subscriptionId)
قارن التجزئة المحسوبة أعلاه بقيمة معامل طلب البحث sig . إذا تطابق المجزئون، فانتقل إلى الخطوة التالية. خلاف ذلك، قم برفض الطلب.
معالجة اشتراك المنتج استنادا إلى نوع العملية المطلوبة في العملية (على سبيل المثال: الفوترة، الأسئلة الإضافية، إلخ).
بعد إكمال العملية من جانبك، قم بإدارة الاشتراك في APIM. على سبيل المثال، اشترك في المستخدم في منتج APIM عن طريق استدعاء واجهة برمجة تطبيقات REST للاشتراكات.
مثال على التعليمات البرمجية
توضح نماذج التعليمات البرمجية هذه كيفية إنشاء تجزئة معلمة returnUrl
الاستعلام عند تفويض تسجيل دخول المستخدم أو الاشتراك. returnUrl
هو عنوان URL للصفحة التي نقر فيها المستخدم على ارتباط تسجيل الدخول أو الاشتراك.
- استخدم مفتاح التحقق من التفويض ، والذي تم تعيينه في شاشة التفويض في مدخل Microsoft Azure.
- إنشاء التعليمة البرمجية لمصادقة الرسالة المستندة إلى التجزئة الذي يتحقق من صحة التوقيع، مما يثبت صحة العائد عنوان Url.
مع تعديل طفيف، يمكنك استخدام نفس التعليمات البرمجية لحساب التجزئة الأخرى، مثل مع productId
وعند userId
تفويض اشتراك المنتج.
C# تعليمة برمجية لتجزئة من عنوان Url
using System.Security.Cryptography;
string key = "delegation validation key";
string returnUrl = "returnUrl query parameter";
string salt = "salt query parameter";
string signature;
using (var encoder = new HMACSHA512(Convert.FromBase64String(key)))
{
signature = Convert.ToBase64String(encoder.ComputeHash(Encoding.UTF8.GetBytes(salt + "\n" + returnUrl)));
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
}
تعليمة برمجية Node JS لإنشاء تجزئة لعنوان Url
var crypto = require('crypto');
var key = 'delegation validation key';
var returnUrl = 'returnUrl query parameter';
var salt = 'salt query parameter';
var hmac = crypto.createHmac('sha512', new Buffer(key, 'base64'));
var digest = hmac.update(salt + '\n' + returnUrl).digest();
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
var signature = digest.toString('base64');
هام
تحتاج إلى إعادة توزيع مدخل المطور لتغييرات التفويض لكي تكون نافذة المفعول.
الخطوات التالية
- تعلم المزيد حول بوابة المطور.
- المصادقة باستخدام معرف Microsoft Entra أو مع Azure AD B2C.
- المزيد من أسئلة مدخل المطور؟ ابحث عن إجابات في الأسئلة الشائعة.