إنشاء خدمة وصول مستخدم موثوق بها باستخدام Azure Functions

توضح هذه المقالة كيفية استخدام Azure Functions لإنشاء خدمة وصول مستخدم موثوق به.

هام

نقطة النهاية التي تم إنشاؤها في نهاية هذا البرنامج التعليمي غير آمنة. تأكد من قراءة تفاصيل الأمان في المقالة Azure Function Security. تحتاج إلى إضافة أمان إلى نقطة النهاية لضمان عدم تمكن الجهات الفاعلة السيئة من توفير الرموز المميزة.

كود التحميل

ابحث عن الكود النهائي لهذا التشغيل السريع في GitHub.

المتطلبات الأساسية

نظرة عامة

المخطط لبنية الخدمة الموثوق بها

لهذا البرنامج التعليمي سنقوم بخلق دالة 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، يمكنك اتباع الإرشادات خطوة بخطوة

باختصار، ستحتاج إلى:

  1. سجّل الدخول إلى Azure من استوديو المرئيات
  2. انشر المشروع إلى حساب Azure الخاص بك. هنا سوف تحتاج إلى اختيار اشتراك موجود.
  3. إنشاء مورد جديد لدالة Azure باستخدام المعالج لاستوديو المرئيات أو استخدام مورد موجود. للحصول على مورد جديد، ستحتاج إلى تكوينه إلى المنطقة المطلوبة، وقت التشغيل، والمعرف الفريد.
  4. انتظر لحين الانتهاء من النشر
  5. قم بتشغيل الدالة 🎉

قم بتشغيل دالة 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.

الخطوات التالية

قد ترغب أيضًا بما يلي: