تهيئة تطبيقات العميل

مكتمل

مع MSAL.NET 3.x، الطريقة الموصى بها لإنشاء مثيل تطبيق باستخدام مُنشئي التطبيق: PublicClientApplicationBuilder وConfidentialClientApplicationBuilder. إنها توفر آلية قوية لتكوين التطبيق إما من التعليمات البرمجية أو من ملف التكوين أو حتى عن طريق خلط كلا النَهجين.

قبل تهيئة التطبيق، تحتاج أولاً إلى تسجيله بحيث يمكن دمج التطبيق مع النظام الأساسي للهويات في Microsoft. بعد التسجيل، قد تحتاج إلى المعلومات التالية (والتي يمكن العثور عليها في مدخل Microsoft Azure):

  • معرّف العميل (سلسلة تمثل معرف فريد عمومي)
  • عنوان "URL" لموفر الهوية (يسمّى المثيل) ومُتلقّين تسجيل الدخول للتطبيق الخاص بك. وتعرف هاتان المعلمتان معاً باسم الهيئة.
  • معرف المستأجر إذا كنت تكتب تطبيق خط عمل فقط لمؤسستك (يسمى أيضا تطبيق المستأجر الفردي).
  • بيانات التطبيق السرية (سلسلة بيانات العميل السرية) أو الشهادة (من نوع X509Certificate2) إذا كان تطبيق عميل سري.
  • بالنسبة لتطبيقات الويب، وأحيانا لتطبيقات العميل العامة (خاصة عندما يحتاج تطبيقك إلى استخدام وسيط)، يجب عليك أيضا تعيين المكان الذي redirectUri يتصل فيه موفر الهوية مرة أخرى بتطبيقك باستخدام رموز الأمان المميزة.

تهيئة تطبيقات العميل العامة والسرية من التعليمات البرمجية

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

IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId).Build();

وبنفس الطريقة، يقوم الرمز التالي بـ إنشاء مثيل لتطبيق سري (تطبيق ويب موجود فيhttps://myapp.azurewebsites.net) يعالج الرموز المميزة من المستخدمين في السحابة العامة لـ Microsoft Azure، مع حسابات العمل والمدرسة الخاصة بهم، أو حساباتهم الشخصية في Microsoft. يتم تعريف التطبيق مع موفر خدمة الهوية عن طريق مشاركة بيانات العميل السرية:

string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
    .WithClientSecret(clientSecret)
    .WithRedirectUri(redirectUri )
    .Build();

معدلات المنشئ

في القصاصات البرمجية باستخدام منشئي التطبيقات، .With يمكن تطبيق الأساليب كمعاملات (على سبيل المثال، .WithAuthority و .WithRedirectUri).

  • .WithAuthorityالمعدل.WithAuthority: يقوم المعدّل بتعيين المرجع الافتراضي للتطبيق إلى سلطة Azure Active Directory، مع إمكانية اختيار سحابة Azure أو الجمهور أو المستأجر (معرف المستأجر أو اسم المجال)، أو توفير السلطة مباشرة لـ "URL".

    var clientApp = PublicClientApplicationBuilder.Create(client_id)
        .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id)
        .Build();
    
  • .WithRedirectUri المعدل.WithRedirectUri: يتجاوز المعدل إعادة التوجيه الافتراضية لـ "URL".

    var clientApp = PublicClientApplicationBuilder.Create(client_id)
        .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id)
        .WithRedirectUri("http://localhost")
        .Build();
    

المعدلات الشائعة لتطبيقات العميل العامة والسرية

يسرد الجدول أدناه بعض المعدلات التي يمكنك تعيينها على عميل عام أو سري.

المعدل الوصف
.WithAuthority() تعيين المرجع الافتراضي للتطبيق إلى سلطة Azure Active Directory، مع إمكانية اختيار سحابة Azure أو الجمهور أو المستأجر (معرف المستأجر أو اسم المجال)، أو توفير السلطة مباشرة لـ "URL".
.WithTenantId(string tenantId) يمنع معرّف المستأجر أو وصف المستأجر.
.WithClientId(string) تجاوز معرف العميل.
.WithRedirectUri(string redirectUri) يتجاوز إعادة التوجيه الافتراضية لـ "URL". هذا مفيد للسيناريوهات التي تتطلب وسيطا.
.WithComponent(string) تعيين اسم المكتبة باستخدام MSALNET. (لأسباب تتعلق بالقياس عن بعد).
.WithDebugLoggingCallback() إذا تم استدعاؤه، يستدعي Debug.Write التطبيق ببساطة تمكين تتبعات تصحيح الأخطاء.
.WithLogging() إذا تم استدعاؤه، يستدعي التطبيق رد اتصال مع تتبعات تصحيح الأخطاء.
.WithTelemetry(TelemetryCallback telemetryCallback) تعيين المفوض المُستخدم لإرسال بيانات تتبع الاستخدام.

المعدلات الخاصة بتطبيقات العميل السرية

المعدلات التي يمكنك تعيينها على منشئ تطبيقات عميل سري هي:

المعدل الوصف
.WithCertificate(X509Certificate2 certificate) تعيين الشهادة التي تُعرّف التطبيق باستخدام Azure Active Directory.
.WithClientSecret(string clientSecret) تعيين بيانات العميل السرية (كلمة مرور التطبيق) لتعريف التطبيق باستخدام Azure Active Directory.