Настройка аутентификации JWT с помощью Identity Server и получение токена доступа с помощью Minimal API.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Настройка аутентификации JWT с помощью Identity Server и получение токена доступа с помощью Minimal API.

Сообщение Anonymous »

Я работаю над проектом, основанным на микросервисной архитектуре и использующим сервер идентификации 5.
Я настроил аутентификацию JWT с использованием сервера идентификации 5 следующим образом: р>

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

public static IServiceCollection AddDefaultAuthentication(this IHostApplicationBuilder builder)
{
var services = builder.Services;
var configuration = builder.Configuration;

// {
//   "Identity": {
//     "Url": "http://identity",
//     "Audience": "basket"
//    }
// }

var identitySection = configuration.GetSection("Identity");

if (!identitySection.Exists())
{
// No identity section, so no authentication
return services;
}

// prevent from mapping "sub" claim to nameidentifier.
JsonWebTokenHandler.DefaultInboundClaimTypeMap.Remove("sub");

services.AddAuthentication().AddJwtBearer(options =>
{
var identityUrl = identitySection.GetRequiredValue("Url");
var audience = identitySection.GetRequiredValue("Audience");
options.Authority = identityUrl;
options.RequireHttpsMetadata = false;
options.Audience = audience;

options.TokenValidationParameters = new TokenValidationParameters
{
#if DEBUG
// Needed if using Android Emulator Locally. See https://learn.microsoft.com/en-us/dotnet/maui/data-cloud/local-web-services?view=net-maui-8.0#android
ValidIssuers = [identityUrl, "https://10.0.2.2:5243"],
#else
ValidIssuers = [identityUrl],
#endif
ValidateAudience = false,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Constants.SecurityKey)),
ValidTypes = new[] { "at+jwt" },
};
});

services.AddAuthorization();

return services;
}
Я хочу получить токен доступа. Но мой API не работает.

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

api.MapGet("/token",
async (HttpContext context) =>
await context.GetTokenAsync("access_token"));
Как получить токен доступа?

Подробнее здесь: https://stackoverflow.com/questions/788 ... -token-usi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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