پیکربندی احراز هویت شناسه خارجی Azure Entra برای برنامه وب Blazor
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۱۹ ۰۸:۵۱
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
.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