مصادقة حلول إدارة الدُفعات مع "الدليل النشط"

تصادق التطبيقات التي تستدعي خدمة Azure Batch Management باستخدام مكتبة مصادقة Microsoft (معرف Microsoft Entra). معرف Microsoft Entra هو دليل Microsoft متعدد المستأجرين وخدمة إدارة الهوية المستندة إلى السحابة. يستخدم Azure نفسه معرف Microsoft Entra لمصادقة عملائها ومسؤولي الخدمة ومستخدمي المؤسسة.

تعرض مكتبة .NET لإدارة الدُفعات أنواع للعمل مع حسابات الُدفعة ومفاتيح الحساب والتطبيقات وحِزَم التطبيقات. تُعد مكتبة .NET لإدارة الدُّفعات من عملاء موفر موارد Azure، تُستخدم مع مدير موارد Azure لإدارة هذه الموارد برمجياً. مطلوب معرف Microsoft Entra لمصادقة الطلبات التي تم إجراؤها من خلال أي عميل موفر موارد Azure، بما في ذلك مكتبة Batch Management .NET، ومن خلال Azure Resource Manager.

في هذه المقالة، نستكشف استخدام معرف Microsoft Entra للمصادقة من التطبيقات التي تستخدم مكتبة Batch Management .NET. نعرض كيفية استخدام معرف Microsoft Entra لمصادقة مسؤول اشتراك أو مسؤول مشارك، باستخدام المصادقة المتكاملة. نستخدم نموذج مشروع AccountManagement، المتوفر على GitHub، للتنقل باستخدام معرف Microsoft Entra مع مكتبة Batch Management .NET.

لمعرفة المزيد حول استخدام مكتبة .NET لإدارة الدُفعات ونموذج إدارة الحسابات، يمكنك الاطلاع على إدارة حسابات الدُفعات والحصص النسبية باستخدام مكتبة عميل .NET لإدارة الدُفعات.

تسجيل طلبك باستخدام معرف Microsoft Entra

توفر مكتبة مصادقة Microsoft (MSAL) واجهة برمجية لمعرف Microsoft Entra للاستخدام داخل تطبيقاتك. للاتصال ب MSAL من التطبيق الخاص بك، يجب تسجيل التطبيق الخاص بك في مستأجر Microsoft Entra. عند تسجيل التطبيق الخاص بك، يمكنك تزويد معرف Microsoft Entra بمعلومات حول التطبيق الخاص بك، بما في ذلك اسم له داخل مستأجر Microsoft Entra. يوفر معرف Microsoft Entra بعد ذلك معرف تطبيق تستخدمه لربط التطبيق الخاص بك بمعرف Microsoft Entra في وقت التشغيل. لمعرفة المزيد حول معرف التطبيق، راجع الكائنات الأساسية للتطبيق والخدمة في معرف Microsoft Entra.

لتسجيل نموذج تطبيق AccountManagement، اتبع الخطوات الواردة في قسم إضافة تطبيق في تكامل التطبيقات مع معرف Microsoft Entra. تحديد تطبيق العميل الأصلي لنوع التطبيق. معيار الصناعة OAuth 2.0 URI لإعادة توجيه URI هو urn:ietf:wg:oauth:2.0:oob. ومع ذلك، يمكنك تحديد أي URI صالح (مثل http://myaccountmanagementsample) لإعادة توجيه URI، حيث لا يلزم أن يكون نقطة نهاية حقيقية.

Adding an application

بمجرد الانتهاء من عملية التسجيل، سترى معرف الطلب ومعرف الكائن (أساس الخدمة) المدرج في طلبك.

Completed registration process

منح الوصول API إدارة الموارد Azure إلى التطبيق الخاص بك

بعد ذلك، ستحتاج إلى تفويض الوصول إلى التطبيق الخاص بك إلى API إدارة الموارد Azure. معرف Microsoft Entra لواجهة برمجة تطبيقات Resource Manager هو واجهة برمجة تطبيقات إدارة خدمة Windows Azure.

اتبع هذه الخطوات في مدخل Azure:

  1. في جزء التنقل الأيسر من مدخل Azure، اختر كل الخدمات وحدد فوق تسجيلات التطبيقات ثم حدد فوق إضافة.

  2. ابحث عن اسم التطبيق الخاص بك في قائمة تسجيلات التطبيقات:

    Search for your application name

  3. اعرض جزء الإعدادات. في المقطع الوصول إلى واجهة برمجة التطبيقات حدد الأذونات المطلوبة.

  4. انقر فوق إضافة لإضافة الإذن المطلوب الجديد.

  5. في الخطوة 1، أدخل واجهة برمجة تطبيقات إدارة خدمة Windows Azure، وحدد واجهة برمجة التطبيقات هذه من قائمة النتائج، ثم حدد فوق الزر تحديد.

  6. في الخطوة 2، حدد خانة الاختيار بجوار الوصول إلى نموذج التوزيع Azure الكلاسيكي كمستخدمي المؤسسة، ثم حدد فوق الزر تحديد.

  7. اختر زر تم.

يظهر جزء الأذونات المطلوبة الآن أن الأذونات للتطبيق الخاص بك يتم منحها لكل من MSAL و Resource Manager APIs. يتم منح الأذونات إلى MSAL بشكل افتراضي عند تسجيل تطبيقك لأول مرة باستخدام معرف Microsoft Entra.

Delegate permissions to the Azure Resource Manager API

نقاط نهاية Microsoft Entra

لمصادقة حلول Batch Management باستخدام معرف Microsoft Entra، ستحتاج إلى نقطتي نهاية معروفتين.

  • توفر نقطة النهاية الشائعة ل Microsoft Entra واجهة تجميع بيانات اعتماد عامة عندما لا يتم توفير مستأجر معين، كما هو الحال في المصادقة المتكاملة:

    https://login.microsoftonline.com/common

  • تُستخدم نقطة نهاية إدارة موارد Azure للحصول على رمز مميز لمصادقة الطلبات إلى خدمة إدارة الدُفعات:

    https://management.core.windows.net/

يعرّف تطبيق نموذج إدارة الحسابات الثوابت لنقاط النهاية هذه. اترك هذه الثوابت دون تغيير:

// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";

الرجوع إلى معرف التطبيق الخاص بك

يستخدم تطبيق العميل معرف التطبيق (يشار إليه أيضا باسم معرف العميل) للوصول إلى معرف Microsoft Entra في وقت التشغيل. بمجرد تسجيل التطبيق الخاص بك في مدخل Microsoft Azure، قم بتحديث التعليمات البرمجية الخاصة بك لاستخدام معرف التطبيق الذي يوفره معرف Microsoft Entra للتطبيق المسجل. يمكنك نسخ معرف التطبيق الخاص بك، في تطبيق نموذج إدارة الحسابات، من مدخل Azure إلى الثابت المناسب:

// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

أيضا نسخ URI إعادة التوجيه التي قمت بتحديدها أثناء عملية التسجيل. يجب أن تتطابق URI إعادة التوجيه المحددة في التعليمات البرمجية URI إعادة التوجيه التي قمت بتوفيرها عند تسجيل التطبيق.

// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";

الحصول على رمز مصادقة Microsoft Entra

بعد تسجيل نموذج AccountManagement في مستأجر Microsoft Entra وتحديث نموذج التعليمات البرمجية المصدر بقيمك، يكون النموذج جاهزا للمصادقة باستخدام معرف Microsoft Entra. عند تشغيل العينة، يحاول MSAL الحصول على رمز مميز للمصادقة. في هذه الخطوة، فإنه يطالبك ببيانات اعتماد Microsoft:

// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
                                                        ClientId,
                                                        new Uri(RedirectUri),
                                                        PromptBehavior.Auto);

بعد توفير بيانات الاعتماد الخاصة بك، يمكن متابعة التطبيق نموذج لإصدار طلبات مصادق عليها إلى خدمة إدارة الدفعات.

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