عنوان:

‫پیکربندی احراز هویت شناسه خارجی Azure Entra برای برنامه وب Blazor


نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۱۹ ۰۸:۵۱
آدرس: www.dntips.ir
این راهنما نحوه پیکربندی شناسه خارجی Azure Entra (جانشین Azure B2C) برای یک برنامه وب Blazor را توضیح می‌دهد. این راهنما برای برنامه‌های وب Blazor با رندر سرور نوشته شده است، اما باید با WebAssembly نیز سازگار باشد. نسخه چارچوب .NET 10 (آخرین LTS در زمان نگارش این مطلب) است. برای شروع، یک برنامه وب Blazor جدید با حالت رندر تعاملی سرور ایجاد کنید. سپس بسته‌های nuget زیر را به پروژه Blazor خود اضافه کنید: Microsoft.Identity.Web و Microsoft.Identity.Web.UI. در مرکز مدیریت Azure Entra به Microsoft Entra وارد شوید. اطمینان حاصل کنید که در مستاجر Workforce پیش‌فرض خود قرار دارید. برای اطمینان از قرارگیری در مستاجر صحیح، Overview را انتخاب کرده و سپس Manage Tenants را انتخاب کنید. External Identities را انتخاب کرده و مطمئن شوید که ارائه‌دهندگان ترجیحی شما پیکربندی شده‌اند. در پروژه من، انتخاب‌های پیش‌فرض را حفظ کردم. User Flows را انتخاب کرده و یک جریان کاربر جدید برای اجازه دادن به کاربران برای ثبت‌نام اضافه کنید. اطمینان حاصل کنید که ویژگی‌های کاربر مورد نیاز شما انتخاب شده‌اند. به صورت اختیاری، Domain names را انتخاب کرده و دامنه سفارشی خود را اضافه کرده و آن را تأیید کنید. App Registrations را انتخاب کرده و یک برنامه جدید ایجاد کنید. یکی از گزینه‌هایی را انتخاب کنید که اجازه استفاده از حساب‌های شخصی را می‌دهد. به صورت اختیاری، در بخش Branding & Properties، اطلاعات برنامه را با برند، لوگو، شرایط استفاده و غیره به‌روزرسانی کنید. همچنین می‌توانید دامنه را به دامنه سفارشی خود تغییر دهید (این مورد تأثیری بر دامنه اصلی در مستاجر نخواهد داشت). به صورت اختیاری، Owners را انتخاب کرده و خود را به عنوان مالک برنامه تعیین کنید. Authentication را انتخاب کرده و یک Web Redirect URI اضافه کنید. آن را روی https://app_base_url/signin-oidc تنظیم کنید. به عنوان مثال: http://localhost:5171/signin-oidc یا https://localhost:7215/signin-oidc. Certificates & Secrets را انتخاب کرده و یک راز مشتری جدید ایجاد کنید. مقدار را برای استفاده بعدی یادداشت کنید. قطعه کد زیر را به فایل appsettings.json خود اضافه کنید:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "consumers",
/*این برای احراز هویت کاربران خارجی است*/
"ClientId": "your_app_registration_client_id",
"ClientSecret": "the_secret_you_generated_earlier",
/*بهتر است در محیط تولید از Key Vault و در طول توسعه از secrets.json استفاده کنید*/
"CallbackPath": "/signin-oidc"
}
,
"DownstreamApi": {
"BaseUrl": "https://graph.microsoft.com/v1.0/",
"RelativePath": "me",
"Scopes": [
"user.read"
]
}
در Program.cs یا جایی که پیکربندی شی builder انجام می‌شود، قطعه کد زیر را اضافه کنید:
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(configuration)
    .EnableTokenAcquisitionToCallDownstreamApi()
    .AddInMemoryTokenCaches();
services.AddCascadingAuthenticationState();
در Program.cs یا جایی که پیکربندی شی app انجام می‌شود، قطعه کد زیر را اضافه کنید:
app.UseAuthentication();
app.UseAuthorization();
خطوط زیر را به فایل _Imports.razor خود اضافه کنید:
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
از این به بعد، می‌توانید هر صفحه یا کامپوننتی را برای نیاز به احراز هویت پیکربندی کنید و Blazor به طور خودکار کاربر را به صفحه ورود Azure Entra هدایت می‌کند اگر کاربر وارد نشده باشد.


مشاهده مطلب اصلی