إدارة Azure AD B2C مع مايكروسوفت Graph

تسمح لك Microsoft Graph بإدارة الموارد في دليل متاجرة عمل-مستهلك AAD (دليل Azure النشط) يتم دعم عمليات Microsoft Graph API التالية لإدارة موارد متاجرة عمل-مستهلك AAD (دليل Azure النشط)، بما في ذلك المستخدمين وموفري الهوية وتدفق المستخدمين والسياسات المخصصة ومفاتيح النهج. يستهدف كل ارتباط في المقاطع التالية الصفحة المطابقة ضمن مرجع Microsoft Graph API لهذه العملية.

إشعار

يمكنك أيضا إنشاء دليل متاجرة عمل-مستهلك AAD (دليل Azure النشط) نفسه برمجيا، إلى جانب مورد Azure المطابق المرتبط باشتراك Azure. لا يتم الكشف عن هذه الوظيفة من خلال واجهة برمجة تطبيقات Microsoft Graph، ولكن من خلال واجهة برمجة تطبيقات REST من Azure. لمزيد من المعلومات، راجع مستأجري متاجرة عمل-مستهلك - إنشاء.

شاهد هذا الفيديو للتعرف على ترحيل المستخدم بمتاجرة عمل-مستهلك AAD (دليل Azure النشط) باستخدام واجهة برمجة تطبيقات Microsoft Graph.

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

  • لاستخدام MS Graph API والتفاعل مع الموارد في مستأجر متاجرة عمل-مستهلك AAD (دليل Azure النشط)، تحتاج إلى تسجيل تطبيق يمنح الأذونات للقيام بذلك. اتبع الخطوات الواردة في مقالة تسجيل تطبيق Microsoft Graph لإنشاء تسجيل تطبيق يمكن لتطبيق الإدارة استخدامه.

إدارة المستخدمين

إشعار

لا يدعم Microsoft Azure Active Directory B2C حاليًا إمكانات الاستعلام المتقدمة على عناصر الدليل. هذا يعني أنه لا يوجد دعم لمعامِلات طلب البحث $count و$search وليس (not) ولا يساوي (ne) وينتهي بـ (endsWith) في معامل طلب البحث $filter. لمزيد من المعلومات، راجع معلمات الاستعلام في Microsoft Graph و إمكانات الاستعلام المتقدمة في Microsoft Graph .

إدارة رقم هاتف المستخدم

رقم هاتف يمكن استخدامه من قبل المستخدم لتسجيل الدخول باستخدام رسالة SMS أو المكالمات الصوتيةأو المصادقة متعددة العوامل. لمزيد من المعلومات، راجع واجهة برمجة تطبيقات أساليب مصادقة Microsoft Entra.

لاحظ أن عملية القائمة تعرض فقط أرقام الهواتف الممكّنة. يجب تمكين رقم الهاتف التالي للاستخدام مع عمليات القائمة.

Enable phone sign-in

إشعار

يتم تخزين رقم هاتف ممثل بشكل صحيح بمسافة بين رمز البلد ورقم الهاتف. لا تضيف خدمة متاجرة عمل-مستهلك AAD (دليل Azure النشط) هذه المساحة بشكل افتراضي.

عنوان البريد الإلكتروني لإعادة تعيين كلمة مرور الخدمة الذاتية

عنوان بريد إلكتروني يمكن استخدامه من قبل حساب تسجيل دخول اسم مستخدم لإعادة تعيين كلمة المرور. لمزيد من المعلومات، راجع واجهة برمجة تطبيقات أساليب مصادقة Microsoft Entra.

طريقة مصادقة رمز OATH المميز للبرامج

رمز OATH المميز هو مولد أرقام قائم على البرامج ويعتمد على كلمة المرور لمرة واحدة (TOTP)لـ OATH قياسية للمصادقة متعددة العوامل عبر تطبيق المصدّق. استخدم واجهة برمجة التطبيقات لـ Microsoft Graph لإدارة رمز OATH المميز المسجل لمستخدم:

موفرو الهوية

إدارة موفري الهوية المتاحين لتدفق المستخدم الخاص بك في مستأجر متاجرة عمل-مستهلك AAD (دليل Azure النشط).

تدفق المستخدم (بيتا)

قم بتكوين السياسات المعدة مسبقًا للاشتراك وتسجيل الدخول والاشتراك المشترك وتسجيل الدخول وإعادة تعيين كلمة المرور وتحديث الملف الشخصي.

طرق مصادقة تدفق المستخدم (إصدار بيتا)

اختر آلية للسماح للمستخدمين بالتسجيل عبر الحسابات المحلية. الحسابات المحلية هي الحسابات التي يقوم فيها Azure AD B2C بتأكيد الهوية. لمزيد من المعلومات، راجع نوع المورد b2cAuthenticationMethodsPolicy.

النهج المخصصة (بيتا)

تسمح لك العمليات التالية بإدارة نُهج إطار عمل ثقة متاجرة عمل-مستهلك AAD (دليل Azure النشط)، والمعروفة باسم النهج المخصصة.

مفاتيح النهج (بيتا)

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

المورد الأعلى مستوى لمفاتيح النهج في Microsoft Graph API هو مجموعة مفاتيح إطار العمل الموثوق بها. تحتوي كل مجموعة مفاتيح على مفتاحواحد على الأقل. لإنشاء مفتاح، قم أولا بإنشاء مجموعة مفاتيح فارغة، ثم قم بإنشاء مفتاح في مجموعة المفاتيح. يمكنك إنشاء سر يدوي أو تحميل شهادة أو مفتاح PKCS12. يمكن أن يكون المفتاح سرا تم إنشاؤه أو سلسلة (مثل سر تطبيق Facebook) أو شهادة تقوم بتحميلها. إذا كانت مجموعة المفاتيح تحتوي على مفاتيح متعددة، فسيكون مفتاح واحد فقط نشطًا.

مجموعة مفاتيح نهج إطار عمل الثقة

مفتاح سياسة إطار الثقة

التطبيقات

خصائص ملحق التطبيق (ملحق الدليل)

تعرف خصائص ملحق التطبيق أيضا باسم الدليل أو ملحقات Microsoft Entra. لإدارتها في متاجرة عمل-مستهلك Azure AD استخدم نوع مورد identityUserFlowAttribute والأساليب المقترنة به.

يمكنك تخزين ما يصل إلى 100 قيمة ملحق الدليل لكل مستخدم. لإدارة خصائص ملحق الدليل لمستخدم، استخدم واجهات برمجة تطبيقات المستخدم التالية في Microsoft Graph.

  • تحديث المستخدم: لكتابة أو إزالة قيمة خاصية ملحق الدليل من عنصر المستخدم.
  • الحصول على مستخدم: لاسترداد قيمة امتداد الدليل للمستخدم. خاصية الملحق سيتم إرجاعها بشكل افتراضي من خلال نقطة النهاية beta، ولكن فقط على $select من خلال نقطة النهاية v1.0.

بالنسبة لتدفق المستخدم، تتم إدارة خصائص الملحق هذه باستخدام مدخل Microsoft Azure. بالنسبة للسياسات المخصصة، تقوم متاجرة عمل-مستهلك AAD (دليل Azure النشط) بإنشاء الخاصية لك، في المرة الأولى التي يكتب فيها النهج قيمة إلى خاصية الملحق.

إشعار

في Microsoft Entra ID، تتم إدارة ملحقات الدليل من خلال نوع مورد extensionProperty والأساليب المقترنة به. ومع ذلك، نظرا لأنها تستخدم في متاجرة عمل-مستهلك من خلال b2c-extensions-app التطبيق الذي لا ينبغي تحديثه، فإنه تتم إدارتها في Azure AD B2C باستخدام نوع المورد identityUserFlowAttribute والأساليب المقترنة به.

استخدام المستأجر

استخدم واجهة برمجة تطبيقات Get organization details للحصول على الحصة النسبية لحجم الدليل. تحتاج إلى إضافة معلمة $select الاستعلام كما هو موضح في طلب HTTP التالي:

GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota

استبدل organization-id بمعرف المؤسسة أو المستأجر.

تبدو الاستجابة للطلب أعلاه مشابهة لمقتطف JSON التالي:

{
    "directorySizeQuota": {
        "used": 156,
        "total": 1250000
    }
}

سجلات التدقيق

لمزيد من المعلومات حول الوصول إلى سجلات تدقيق متاجرة عمل-مستهلك AAD (دليل Azure النشط)، راجع الوصول إلى سجلات تدقيق متاجرة عمل-مستهلك AAD (دليل Azure النشط).

الوصول المشروط

استرداد المستخدمين والتطبيقات المحذوفة أو استعادتها

يمكن استعادة المستخدمين والتطبيقات المحذوفة فقط إذا تم حذفها خلال آخر 30 يوما.

كيفية إدارة Microsoft Graph برمجيا

عندما تريد إدارة Microsoft Graph، يمكنك إما القيام بذلك كتطبيق باستخدام أذونات التطبيق، أو يمكنك استخدام الأذونات المفوضة. بالنسبة للأذونات المفوضة، يوافق المستخدم أو المسؤول على الأذونات التي يطلبها التطبيق. يُمنح التطبيق إذن العمل كمستخدم قام بتسجيل الدخول عند إجراء مكالمات إلى المورد الهدف. يتم استخدام أذونات التطبيق بواسطة التطبيقات التي لا تتطلب وجود مستخدم مسجل الدخول وبالتالي تتطلب أذونات التطبيق. وبسبب هذا، يمكن للمسؤولين فقط الموافقة على أذونات التطبيق.

إشعار

لا يمكن استخدام الأذونات المفوضة للمستخدمين الذين يسجلون الدخول من خلال تدفقات المستخدم أو النُهج المخصصة للأذونات المفوضة لواجهة برمجة تطبيقات Microsoft Graph.

عينة التعليمات البرمجية: كيفية إدارة حسابات المستخدمين برمجيا

نموذج التعليمات البرمجية هذا هو تطبيق وحدة تحكم .NET Core يستخدم Microsoft Graph SDK للتفاعل مع Microsoft Graph API. توضح التعليمات البرمجية الخاصة به كيفية استدعاء واجهة برمجة التطبيقات لإدارة المستخدمين برمجيا في مستأجر متاجرة عمل-مستهلك AAD (دليل Azure النشط). يمكنك تنزيل أرشيف العينة (*.zip)، استعراض المستودع على GitHub، أو نسخ المستودع:

git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git

بعد الحصول على عينة التعليمات البرمجية، قم بتكوينه لبيئتك ثم قم ببناء المشروع:

  1. افتح المشروع في Visual Studio أو تعليمة برمجية Visual Studio.

  2. افتح src/appsettings.json.

  3. في القسم appSettings، استبدل your-b2c-tenant باسم المستأجر الخاص بك، و Application (client) ID وClient secret بقيم تسجيل طلب الإدارة الخاص بك. للحصول على مزيد من المعلومات، راجع تسجيل تطبيق Microsoft Graph.

  4. افتح نافذة وحدة التحكم داخل نسختك المحلية بالمستودع، وانتقل إلى دليل src، ثم أنشئ المشروع:

    cd src
    dotnet build
    
  5. قم بتشغيل التطبيق باستخدام الأمر dotnet:

    dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
    

يعرض التطبيق قائمة بالأوامر التي يمكنك تنفيذها. على سبيل المثال، الحصول على كافة المستخدمين والحصول على مستخدم واحد وحذف مستخدم وتحديث كلمة مرور المستخدم واستيراد كمية كبيرة.

إشعار

لكي يقوم التطبيق بتحديث كلمات مرور حساب المستخدم، ستحتاج إلى منح دور مسؤول المستخدم للتطبيق.

مناقشة التعليمة البرمجية

تستخدم عينة التعليمة البرمجية Microsoft Graph SDK، المصممة لتبسيط إنشاء تطبيقات عالية الجودة وفعالة ومرنة يمكنها الوصول إلى Microsoft Graph.

يتطلب أي طلب إلى Microsoft Graph API رمز مميز للوصول للمصادقة. يستخدم الحل حزمة Microsoft.Graph.Auth NuGet التي توفر برنامج تضمين يعتمد على سيناريو المصادقة لمكتبة التعليمات البرمجية لمصادقة Microsoft (MSAL) للاستخدام مع Microsoft Graph SDK.

الأسلوب RunAsync في ملف Program.cs:

  1. قراءة إعدادات التطبيق من ملف appsettings.json
  2. يقوم بتهيئة موفر المصادقة باستخدام تدفق منح بيانات اعتماد عميل OAuth 2.0. من خلال تدفق منح بيانات اعتماد العميل، يكون التطبيق قادرًا على الحصول على رمز وصول للاتصال بواجهة برمجة تطبيقات Microsoft Graph.
  3. إعداد عميل خدمة Microsoft Graph مع موفر المصادقة:
// Read application settings from appsettings.json (tenant ID, app ID, client secret, etc.)
AppSettings config = AppSettingsFile.ReadFromJsonFile();

// Initialize the client credential auth provider
var scopes = new[] { "https://graph.microsoft.com/.default" };
var clientSecretCredential = new ClientSecretCredential(config.TenantId, config.AppId, config.ClientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);

ثم يتم استخدام GraphServiceClient المهيأة في UserService.cs لأداء عمليات إدارة المستخدم. على سبيل المثال، الحصول على قائمة حسابات المستخدمين في المستأجر:

public static async Task ListUsers(GraphServiceClient graphClient)
{
    Console.WriteLine("Getting list of users...");

    try
    {
        // Get all users
        var users = await graphClient.Users
            .Request()
            .Select(e => new
            {
                e.DisplayName,
                e.Id,
                e.Identities
            })
            .GetAsync();

        // Iterate over all the users in the directory
        var pageIterator = PageIterator<User>
            .CreatePageIterator(
                graphClient,
                users,
                // Callback executed for each user in the collection
                (user) =>
                {
                    Console.WriteLine(JsonSerializer.Serialize(user));
                    return true;
                },
                // Used to configure subsequent page requests
                (req) =>
                {
                    Console.WriteLine($"Reading next page of users...");
                    return req;
                }
            );

        await pageIterator.IterateAsync();
    }
    catch (Exception ex)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(ex.Message);
        Console.ResetColor();
    }
}

إجراء استدعاءات واجهة برمجة التطبيقات للنظام باستخدام Microsoft Graph SDKs يتضمن معلومات حول كيفية قراءة وكتابة المعلومات من Microsoft Graph واستخدامها $selectللتحكم في الخصائص التي تم إرجاعها وتوفير معلمات الاستعلام المخصصة واستخدام $filter ومعلمات الاستعلام $orderBy.

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