كيفية تأمين تطبيق ويب من صفحة واحدة مع تسجيل الدخول غير التفاعلي

توضح هذه المقالة كيفية تأمين تطبيق ويب من صفحة واحدة باستخدام Azure Active Directory (Azure AD)، عندما يتعذر على المستخدم تسجيل الدخول إلى Azure AD.

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

لعرض تفاصيل مصادقة حساب خرائط Azure في مدخل Azure:

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى قائمة مدخل Azure. حدد كافة الموارد، ثم حدد حساب خرائط Azure الخاص بك.

  3. ضمن الإعدادات في الجزء الأيمن، حدد المصادقة.

    Authentication details.

يتم إنشاء ثلاث قيم عند إنشاء حساب خرائط Azure. يتم استخدامها لدعم نوعين من المصادقة في خرائط Azure:

  • مصادقة Azure Active Directory: Client ID يمثل الحساب الذي سيتم استخدامه لطلبات واجهة برمجة تطبيقات REST. Client ID يجب تخزين القيمة في تكوين التطبيق، ثم يجب استردادها قبل إجراء خرائط Azure طلبات HTTP التي تستخدم مصادقة Azure AD.
  • مصادقة المفتاح المشترك: يتم Primary Key استخدام مفتاح Secondary Key الاشتراك لمصادقة المفتاح المشترك. تعتمد مصادقة المفتاح المشترك على تمرير المفتاح الذي تم إنشاؤه بواسطة حساب خرائط Azure مع كل طلب خرائط Azure. نوصي بإعادة إنشاء مفاتيحك بانتظام. للحفاظ على الاتصالات الحالية أثناء التجديد ، يتم توفير مفتاحين. يمكن أن يكون أحد المفاتيح قيد الاستخدام ، بينما يقوم بتجديد الآخر. عند إعادة إنشاء مفاتيحك، يجب تحديث أي تطبيقات تصل إلى هذا الحساب لاستخدام المفاتيح الجديدة. لمزيد من المعلومات، راجع المصادقة باستخدام خرائط Azure

تلميح

يمكن خرائط Azure دعم رموز الوصول المميزة من تسجيل دخول المستخدم أو التدفقات التفاعلية. يمكنك استخدام التدفقات التفاعلية للحصول على نطاق أكثر تقييدا لإلغاء الوصول والإدارة السرية.

إنشاء وظيفة Azure

لإنشاء تطبيق خدمة ويب آمن مسؤول عن المصادقة إلى Azure AD:

  1. إنشاء دالة في مدخل Azure. لمزيد من المعلومات، راجع بدء استخدام دالات Azure.

  2. قم بتكوين نهج CORS على الدالة Azure ليتم الوصول إليه بواسطة تطبيق الويب المكون من صفحة واحدة. تؤمن سياسة CORS عملاء المتصفح إلى الأصول المسموح بها لتطبيق الويب الخاص بك. لمزيد من المعلومات، راجع إضافة وظائف CORS.

  3. أضف هوية معينة من قبل النظام على وظيفة Azure لتمكين إنشاء أصل خدمة للمصادقة على Azure AD.

  4. منح حق الوصول المستند إلى الدور للهوية المعينة من قبل النظام إلى حساب خرائط Azure. لمعرفة التفاصيل، يرجى الاطلاع على منح حق الوصول المستند إلى الأدوار.

  5. اكتب التعليمات البرمجية لدالة 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": "..."
    }
    
  6. تكوين الأمان لدالة Azure HttpTrigger:

    1. إنشاء مفتاح وصول وظيفي
    2. نقطة نهاية HTTP آمنة لوظيفة Azure قيد الإنتاج.
  7. تكوين تطبيق ويب خرائط Azure ويب 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

يمكنك منح عنصر تحكم الوصول المستند إلى دور Azure (Azure RBAC) عن طريق تعيين مجموعة Azure AD أو مدير أمان إلى تعريف دور واحد أو أكثر خرائط Azure.

لعرض تعريفات دور Azure المتوفرة خرائط Azure، راجع عرض تعريفات دور خرائط Azure المضمنة.

للحصول على خطوات مفصلة حول كيفية تعيين دور خرائط Azure متوفر للهوية المدارة التي تم إنشاؤها أو أصل الخدمة، راجع تعيين أدوار Azure باستخدام مدخل Azure

لإدارة الوصول خرائط Azure إلى التطبيقات والموارد لعدد كبير من المستخدمين بكفاءة، راجع مجموعات Azure AD.

هام

للسماح للمستخدمين بالمصادقة على أحد التطبيقات، يجب أولا إنشاء المستخدمين في Azure AD. لمزيد من المعلومات، راجع إضافة مستخدمين أو حذفهم باستخدام Azure AD.

للتعرف على كيفية إدارة دليل كبير للمستخدمين بشكل فعال، راجع Azure AD.

تحذير

توفر تعريفات الأدوار المضمنة خرائط Azure وصولا كبيرا جدا إلى التفويض للعديد من واجهات برمجة تطبيقات REST خرائط Azure. لتقييد الوصول إلى واجهات برمجة التطبيقات إلى الحد الأدنى، راجع إنشاء تعريف دور مخصص وتعيين الهوية المعينة من قبل النظام إلى تعريف الدور المخصص . يتيح ذلك أقل امتياز ضروري للتطبيق للوصول إلى خرائط Azure.

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

مزيد من الفهم لسيناريو تطبيق من صفحة واحدة:

ابحث عن مقاييس استخدام واجهة برمجة التطبيقات لحسابك خرائط Azure:

استكشف العينات الأخرى التي توضح كيفية دمج Azure AD مع خرائط Azure: