إنشاء خدمة وصول مستخدم موثوق بها باستخدام Azure Functions
توضح هذه المقالة كيفية استخدام Azure Functions لإنشاء خدمة وصول مستخدم موثوق به.
هام
نقطة النهاية التي تم إنشاؤها في نهاية هذا البرنامج التعليمي غير آمنة. تأكد من قراءة تفاصيل الأمان في المقالة Azure Function Security. تحتاج إلى إضافة أمان إلى نقطة النهاية لضمان عدم تمكن الجهات الفاعلة السيئة من توفير الرموز المميزة.
كود التحميل
ابحث عن الكود النهائي لهذا التشغيل السريع في GitHub.
المتطلبات الأساسية
- حساب Azure باشتراك نشط. لمزيد من التفاصيل، راجع إنشاء حساب مجانًا.
- Visual Studio Code في واحدة من النظم الأساسية المدعومة.
- إصدارات Node.js وActive LTS وMaintenance LTS (يُوصى بالإصدار 10.14.1). يمكنك استخدام أمر
node --version
للتحقق من الإصدار الخاص بك. - ملحق Azure Functions للمحرر Visual Studio Code.
- مورد "خدمات الاتصال" النشط وسلسلة الاتصال. إنشاء مورد خدمات الاتصال.
نظرة عامة
لهذا البرنامج التعليمي سنقوم بخلق دالة Azure التي ستكون بمثابة خدمة توفير رمز مميز موثوق به. يمكنك استخدام هذا البرنامج التعليمي لبدء تحميل خدمة توفير الرمز المميز الخاص بك.
هذه الخدمة مسؤولة عن مصادقة المستخدمين على خدمات اتصالات Azure. سيطلب مستخدمو تطبيقات خدمات الاتصال الخاصة بكAccess Token
من أجل المشاركة في سلاسل الدردشة ومكالمات VoIP. ستعمل الدالة Azure كوسيط موثوق به بين المستخدم وخدمات الاتصال. يسمح لك هذا بتوفير الرموز المميزة دون تعريض سلسلة اتصال المورد الخاصة بك للمستخدمين.
لمزيد من المعلومات، راجع الوثائق المفاهيمية لبنية خادم العميل والمصادقة والتخويل .
إعداد
إعداد دوال Azure
دعونا أولاً نقوم بإعداد الهيكل الأساسي لدالة Azure التي لدينا. يمكن العثور على الإرشادات خطوة بخطوة حول الإعداد هنا: إنشاء دالة باستخدام كود استوديو المرئيات
تتطلب وظيفة Azure التكوين التالي:
- اللغة: جافا سكريبت
- قالب: تشغيل HTTP
- مستوى التخويل: مجهول (يمكن تبديل هذا لاحقًا إذا كنت تفضل نموذج تخويل مختلف)
- اسم الدالة: تعريف المستخدم
بعد اتباع إرشادات دوال Azure مع التكوين أعلاه، يجب أن يكون لديك مشروع في كود استوديو المرئيات لدالة Azure مع index.js
ملف يحتوي على الدالة نفسها. يجب أن يكون الرمز داخل هذا الملف كما يلي:
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const name = (req.query.name || (req.body && req.body.name));
const responseMessage = name
? "Hello, " + name + ". This HTTP triggered function executed successfully."
: "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage
};
}
سنشرع الآن في تثبيت مكتبات خدمات الاتصالات Azure.
تثبيت مكتبات خدمات الاتصالات
سنستخدم Identity
المكتبة لإنشاء ملفات User Access Tokens
.
استخدم الأمر npm install
لتثبيت خدمات اتصالات Azure للهوية SDK للجافا سكريبت.
npm install @azure/communication-identity --save
يسرد خيار --save
المكتبة كتبعية في ملفك package.json.
في الجزء العلوي من الملف index.js
، قم باستيراد الواجهة لـCommunicationIdentityClient
const { CommunicationIdentityClient } = require('@azure/communication-identity');
الوصول إلى إنشاء الرمز المميز
للسماح بإنشاء دالة AzureUser Access Tokens
، سنحتاج أولاً إلى استخدام سلسلة الاتصال لمورد خدمات الاتصال.
قم بزيارة البدء السريع لتوفير الموارد للحصول على مزيد من المعلومات حول استرداد سلسلة الاتصال الخاصة بك.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
بعد ذلك، سنقوم بتعديل دالتنا الأصلية لإنشاء User Access Tokens
.
User Access Tokens
يتم إنشاؤها عن طريق إنشاء مستخدم من الأسلوب createUser
. بمجرد إنشاء المستخدم، يمكننا استخدام الأسلوب getToken
لإنشاء رمز مميز لهذا المستخدم، تقوم دالة Azure بإرجاعه.
في هذا المثال، سنقوم بتكوين نطاق الرمز المميز إلى voip
. قد تكون النطاقات الأخرى ضرورية للتطبيق الخاص بك. معرفة المزيد حول النطاقات
module.exports = async function (context, req) {
let tokenClient = new CommunicationIdentityClient(connectionString);
const user = await tokenClient.createUser();
const userToken = await tokenClient.getToken(user, ["voip"]);
context.res = {
body: userToken
};
}
بالنسبة إلى خدمات الاتصال الحالية CommunicationUser
، يمكنك تخطي خطوة الإنشاء وإنشاء رمز وصول فقط. تم العثور على مزيد من التفاصيل في البدء السريع لإنشاء رموز مميزة لوصول المستخدم .
فحص دالة Azure
تشغيل دالة Azure محليًا باستخدام F5
. سيؤدي هذا إلى تهيئة دالة Azure محليًا وجعلها قابلة للوصول من خلال:http://localhost:7071/api/FUNCTION_NAME
. تحقق من الوثائق الإضافية حول التشغيل محليًا
افتح عنوان URL على المستعرض الخاص بك، ويجب أن تشاهد نص استجابة مع معرف مستخدم الاتصال، الرمز المميز وانتهاء الصلاحية للرمز المميز.
نشر الدالة إلى Azure
لنشر الدالة إلى Azure، يمكنك اتباع الإرشادات خطوة بخطوة
باختصار، ستحتاج إلى:
- سجّل الدخول إلى Azure من استوديو المرئيات
- انشر المشروع إلى حساب Azure الخاص بك. هنا سوف تحتاج إلى اختيار اشتراك موجود.
- إنشاء مورد جديد لدالة Azure باستخدام المعالج لاستوديو المرئيات أو استخدام مورد موجود. للحصول على مورد جديد، ستحتاج إلى تكوينه إلى المنطقة المطلوبة، وقت التشغيل، والمعرف الفريد.
- انتظر لحين الانتهاء من النشر
- قم بتشغيل الدالة 🎉
قم بتشغيل دالة Azure
قم بتشغيل دالة Azure باستخدام url http://<function-appn-ame>.azurewebsites.net/api/<function-name>
يمكنك العثور على عنوان URL بالنقر بزر الماوس الأيمن فوق الدالة على كود استوديو المرئيات ونسخ دالة URL.
لمعلومات إضافية حول تشغيل دالة Azure
تأمين Azure Function
كجزء من إعداد خدمة موثوق بها لتوفير رموز الوصول للمستخدمين، نحتاج إلى مراعاة أمان نقطة النهاية هذه للتأكد من أنه لا يمكن لأي جهة فاعلة سيئة إنشاء رموز مميزة بشكل عشوائي لخدمتك. توفر Azure Function ميزات أمان مضمنة يمكنك استخدامها لتأمين نقطة النهاية باستخدام أنواع مختلفة من نهج المصادقة. اقرأ المزيد حول Azure Function Security
تنظيف الموارد
إذا كنت ترغب في تنظيف وإزالة اشتراك في خدمات الاتصالات، فيمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا. يمكنك اكتشاف المزيد عن تنظيف موارد Azure Communication Serviceوتنظيف Azure Function Resources.
الخطوات التالية
قد ترغب أيضًا بما يلي: