Единый вход в веб-приложении .NET Core, аутентификация пользователей MS Entra с использованием OIDC/OAuth.C#

Место общения программистов C#
Anonymous
Единый вход в веб-приложении .NET Core, аутентификация пользователей MS Entra с использованием OIDC/OAuth.

Сообщение Anonymous »

Мне нужно быстро реализовать единый вход в веб-приложении .NET Core, аутентифицируя пользователей MS Entra с помощью OIDC/OAuth.
Я раньше этого не делал, поэтому хотел бы спросить любого, кто есть, если я на правильном пути, поскольку я видел несколько руководств, и каждый из них немного отличался по подходу.
Я думаю добавить следующее или подобное к appsettings.json:

Код: Выделить всё

{
"AzureAd": {
"Authority": "url-here",
"ClientId": "Enter_the_Application_Id_Here",
"ClientCredentials": [
{
"SourceType": "ClientSecret",
"ClientSecret": "Enter_the_Client_Secret_Here"
}
],
"CallbackPath": "/signin-oidc",
"SignedOutCallbackPath": "/signout-callback-oidc"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
Установите пакеты nuget Microsoft.Identity.Web, Microsoft.Identity.Web.UI
добавьте следующее в Program.cs:

Код: Выделить всё

JwtSecurityTokenHandler.DefaultMapInboundClaims = false;

builder.Services
.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(builder.Configuration);

builder.Services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
}).AddMicrosoftIdentityUI();
Есть ли что-нибудь, что я пропустил? И нужно ли мне иметь дескрипторы авторизации?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... oidc-oauth

Вернуться в «C#»