تمرين - تنفيذ المصادقة التفاعلية باستخدام MSAL.NET
في هذا التمرين، ستتعلم كيفية تنفيذ الإجراءات التالية:
- تسجيل طلب لدى النظام الأساسي للهويات في Microsoft
- استخدام الفئة
PublicClientApplicationBuilder
في MSAL.NET - الحصول على رمز مميز بشكل تفاعلي في تطبيق وحدة التحكم
المتطلبات الأساسية
- حساب Azure باشتراك نشط. إذا لم يكن لديك اشتراك بالفعل، فإنه يمكنك التسجيل في تجربة مجانية على https://azure.com/free
- Visual Studio Code: يمكنك تثبيت Visual Studio Code من .
تسجيل طلب جديد
تسجيل الدخول إلى المدخل: https://portal.azure.com
ابحث عن Azure Active Directory ثم حدده.
ضمن Manage، حدد App registrationsNew registration.
في صفحة "Register an application" التي تظهر، أدخل معلومات التسجيل الخاصة بالتطبيق:
الحقل القيمة الاسم az204appreg
حدد أنواع الحسابات المدعومة تحديد "Accounts in this organizational directory only" Redirect URI (اختياري) حدد Public client/native (نسخة كمبيوتر سطح المكتب والجوال) وأدخل http://localhost
في المربع الموجود على اليمين.اختر تسجيل.
يقوم Azure Active Directory بتعيين معرف تطبيق (عميل) فريد إلى التطبيق الخاص بك، ويتم نقلك إلى صفحة "Overview" للتطبيق الخاص بك.
إعداد تطبيق وحدة التحكم
قم بتشغيل رمز Visual Studio وقم بفتح محطة عن طريق تحديد "Terminal" ثم "New Terminal".
أنشئ مجلدًا للمشروع وبادر بالتغيير إلى المجلد.
md az204-auth cd az204-auth
أنشئ تطبيق وحدة التحكم .NET.
dotnet new console
افتح المجلد az204-auth في Visual Studio Code.
code . -r
إنشاء تطبيق وحدة التحكم
في هذا القسم، يمكنك إضافة الحزم والرمز الضروريين إلى المشروع.
إضافة الحزم واستخدام العبارات
أضف الحزمة
Microsoft.Identity.Client
إلى المشروع في محطة طرفية في Visual Studio Code.dotnet add package Microsoft.Identity.Client
افتح "Program.cs" وإضافة عبارات
Microsoft.Identity.Client
لتشغيلها وتمكين العمليات غير المتزامنة.using System.Threading.Tasks; using Microsoft.Identity.Client;
تغيير الأسلوب الرئيسي لتمكين غير متزامن.
public static async Task Main(string[] args)
إضافة رمز للمصادقة التفاعلية
تحتاج إلى متغيرين للاحتفاظ بمعرفي التطبيق (العميل) والدليل (المستأجر). يمكنك نسخ هذه القيم من المدخل. أضف التعليمات البرمجية التالية واستبدل قيم السلسلة بالقيم المناسبة من المدخل.
private const string _clientId = "APPLICATION_CLIENT_ID"; private const string _tenantId = "DIRECTORY_TENANT_ID";
استخدم الفئة
PublicClientApplicationBuilder
لبناء خارج سياق التخويل.var app = PublicClientApplicationBuilder .Create(_clientId) .WithAuthority(AzureCloudInstance.AzurePublic, _tenantId) .WithRedirectUri("http://localhost") .Build();
رمز الوصف .Create
إنشاء PublicClientApplicationBuilder
من معرّف العميل..WithAuthority
إضافة المرجع المعروف المُطابق لخادم ADFS. في التعليمات البرمجية، نقوم بتحديد السحابة العامة، ونستخدم المستأجر للتطبيق الذي سجلناه.
الحصول على رمز مميز
عند تسجيل تطبيق az204appreg ، فإنه ينشئ تلقائيا إذن user.read
API ل Microsoft Graph. يمكنك استخدام هذا الإذن للحصول على رمز مميز.
تعيين نطاق طلب الإذن لطلب الرمز المميز. أضف التعليمات البرمجية التالية أسفل
PublicClientApplicationBuilder
.string[] scopes = { "user.read" };
إضافة تعليمات برمجية لطلب الرمز المميز وكتابة النتيجة إلى وحدة التحكم.
AuthenticationResult result = await app.AcquireTokenInteractive(scopes).ExecuteAsync(); Console.WriteLine($"Token:\t{result.AccessToken}");
مراجعة الطلب المكتمل
يجب أن تشبه محتويات ملف Program.cs المثال التالي:
using System;
using System.Threading.Tasks;
using Microsoft.Identity.Client;
namespace az204_auth
{
class Program
{
private const string _clientId = "APPLICATION_CLIENT_ID";
private const string _tenantId = "DIRECTORY_TENANT_ID";
public static async Task Main(string[] args)
{
var app = PublicClientApplicationBuilder
.Create(_clientId)
.WithAuthority(AzureCloudInstance.AzurePublic, _tenantId)
.WithRedirectUri("http://localhost")
.Build();
string[] scopes = { "user.read" };
AuthenticationResult result = await app.AcquireTokenInteractive(scopes).ExecuteAsync();
Console.WriteLine($"Token:\t{result.AccessToken}");
}
}
}
شغّل التطبيق
في محطة Visual Studio Code الطرفية، قم بتشغيل
dotnet build
للتحقق من وجود أخطاء، ثمdotnet run
لتشغيل التطبيق.يفتح التطبيق المستعرض الافتراضي الذي يطالبك بتحديد الحساب الذي تريد المصادقة عليه. إذا كانت هناك حسابات متعددة مُدرجة، فحدد الحساب المُقترِن بالمستأجر المُستخدَم في التطبيق.
إذا كانت هذه هي المرة الأولى التي تقوم فيها بالمصادقة على التطبيق المسجل، فستتلقى إعلاما يطلب منك الأذونات الموافقة على التطبيق لقراءة البيانات المقترنة بحسابك. حدد قبول.
يجب أن تشاهد نتائج مشابهة للمثال أدناه في وحدة التحكم.
Token: eyJ0eXAiOiJKV1QiLCJub25jZSI6IlVhU.....