كيفية تأمين تطبيق ويب مـن صفحة واحدة مع تسجيل الدخول غير التفاعلي
تأمين تطبيق ويب من صفحة واحدة باستخدام معرف Microsoft Entra، حتى عندما لا يتمكن المستخدم من تسجيل الدخول إلى معرف Microsoft Entra.
لإنشاء تدفق المصادقة غير التفاعلي هذا، قم أولا بإنشاء خدمة ويب آمنة ل Azure Function مسؤولة عن الحصول على رموز الوصول المميزة من Microsoft Entra ID. تتوفر خدمة الويب هذه حصريا لتطبيق الويب أحادي الصفحة فقط.
لعرض تفاصيل مصادقة حساب خرائط Azure في مدخل Microsoft Azure:
قم بتسجيل الدخول إلى بوابة Azure.
انتقل إلى قائمة مدخل Microsoft Azure. حدد All resources، ثم حدد حساب خرائط Azure الخاص بك.
ضمن الإعدادات الموجودة في الجزء الأيسر، حدد Authentication.
يتم إنشاء ثلاث قيم عند إنشاء حساب خرائط Azure. يتم استخدامها لدعم نوعين من المصادقة في خرائط Azure:
- مصادقة Microsoft Entra:
Client ID
يمثل الحساب الذي سيتم استخدامه لطلبات واجهة برمجة تطبيقات REST.Client ID
يجب تخزين القيمة في تكوين التطبيق، ثم يجب استردادها قبل إجراء خرائط Azure طلبات HTTP التي تستخدم مصادقة Microsoft Entra. - مصادقة المفتاح المشترك:
Primary Key
يتم استخدام وSecondary Key
كمفتاح اشتراك لمُصادقة المفتاح المشترك. تعتمد مُصادقة المفتاح المشترك على تمرير المفتاح الذي تم إنشاؤه بواسطة حساب خرائط Azure مع كل طلب خرائط Azure. نوصي بإعادة إنشاء المَفاتيح بانتظام. للحفاظ على الاتصالات الحالية أثناء التجديد، يتم توفير مَفتاحين. يُمكن أن يكون أحد المفاتيح قيد الاستخدام، أثناء إعادة إنشاء المفتاح الآخر. عند إعادة إنشاء مفاتيحك، يجب عليك تحديث أي تطبيقات تصل إلى هـذا الحساب لاستخدام المفاتيح الجديدة. لمزيدٍ من المعلومات، راجع Authentication with Azure Maps
تلميح
يمكن أن يدعم خرائط Azure رموز الوصول المميزة مـن تسجيل دخول المستخدم أو التدفقات التفاعلية. يمكنك استخدام التدفقات التفاعلية لنطاق أكثر تقييدًا لإبطال الوصول وإدارة البيانات السرية.
إنشاء وظيفة Azure
لإنشاء تطبيق خدمة ويب آمن مسؤول عن المصادقة على معرف Microsoft Entra:
إنشاء دالة في مدخل Microsoft Azure. لمزيد مـن المعلومات، راجع بدء استخدام دالة Azure.
تكوين نهج CORS على دالة Azure ليتم الوصول إليها بواسطة تطبيق الويب أحـادي الصفحة. يؤمن نهج CORS عملاء المتصفح إلى الأصول المَسموح بها لتطبيق الويب الخاص بك. لمزيد من المعلومات، راجع إضافة وظائف CORS.
أضف هوية معينة من قبل النظام على وظيفة Azure لتمكين إنشاء كيان خدمة للمصادقة على معرف Microsoft Entra.
منح الوصول المُستند إلى الدور للهوية المعينة من قبل النظام لحساب خرائط Azure. لمزيد من المعلومات، راجع منح الوصول المستند إلى الدور.
اكتب التعليمات البرمجية لدالة Azure للحصول على رموز الوصول المميزة خرائط Azure باستخدام الهوية المعينة مـن قبل النظام باستخدام إحدى الآليات المدعومة أو بروتوكول REST. لمزيد من المعلومات، راجع الحصول على الرموز المميزة لموارد Azure.
فيما يلي مثال علـى بروتوكول REST:
GET /MSI/token?resource=https://atlas.microsoft.com/&api-version=2019-08-01 HTTP/1.1 Host: localhost:4141
وإليك مثالًا على الاستجابة:
HTTP/1.1 200 OK Content-Type: application/json { "access_token": "eyJ0eXAi…", "expires_on": "1586984735", "resource": "https://atlas.microsoft.com/", "token_type": "Bearer", "client_id": "..." }
تكوين الأمـان لوظيفة Azure HttpTrigger:
- إنشاء مفتاح الوصول إلى الدالة
- نقطة نهاية HTTP الآمنة لدالة Azure فـي الإنتاج.
تـكوين تطبيق ويب خرائط Azure Web SDK.
//URL to custom endpoint to fetch Access token var url = 'https://{App-Name}.azurewebsites.net/api/{Function-Name}?code={API-Key}'; var map = new atlas.Map('myMap', { center: [-122.33, 47.6], zoom: 12, language: 'en-US', view: "Auto", authOptions: { authType: "anonymous", clientId: "<insert>", // azure map account client id getToken: function(resolve, reject, map) { fetch(url).then(function(response) { return response.text(); }).then(function(token) { resolve(token); }); } } }); // use the following events to debug, you can remove them at any time. map.events.add("tokenacquired", function () { console.log("token acquired"); }); map.events.add("error", function (err) { console.log(JSON.stringify(err.error)); });
منح الوصول المستند إلى الدور للمستخدمين إلى Azure Maps
يمكنك منح التحكم في الوصول استنادا إلى الدور في Azure (Azure RBAC) عن طريق تعيين مجموعة Microsoft Entra أو أساس أمان إلى تعريف دور واحد أو أكثر خرائط Azure.
لعرض تعريفات دور Azure المتوفرة لخرائط Azure، راجع عرض تعريفات الأدوار خرائط Azure المضمنة.
للحصول على خطوات تفصيلية حول كيفية تعيين دور خرائط Azure المتاح للهوية المُدارة المنشأة أو مدير الخدمة، راجع تعيين أدوار Azure باستخدام مدخل Microsoft Azure
لإدارة تطبيق خرائط Azure والوصول إلى الموارد لعدد كبير من المستخدمين بكفاءة، راجع مجموعات Microsoft Entra.
هام
لكي يسمح للمستخدمين بالمصادقة على أحد التطبيقات، يجب أولا إنشاء المستخدمين في Microsoft Entra ID. لمزيد من المعلومات، راجع إضافة مستخدمين أو حذفهم باستخدام معرف Microsoft Entra.
للتعرف على كيفية إدارة دليل كبير للمستخدمين بشكل فعال، راجع معرف Microsoft Entra.
تحذير
توفر تعريفات الأدوار المضمنة خرائط Azure وصول تخويل كبير جدًا إلى العديد مـن واجهات برمجة تطبيقات REST خرائط Azure. لتقييد وصول واجهات برمجة التطبيقات إلى الحد الأدنى، راجع إنشاء تعريف دور مخصص وتعيين الهوية المعينة من قبل النظام لتعريف الدور المخصص. يتيح ذلك أقل امتياز ضروري للتطبيق للوصول إلى Azure Maps.
الخطوات التالية
مزيد من الفهم لسيناريو تطبيق مـن صفحة واحدة:
ابحث عـن مقاييس استخدام واجهة برمجة التطبيقات لحساب خرائط Azure:
استكشف العينات الأخرى التي توضح كيفية دمج معرف Microsoft Entra مع خرائط Azure: