У меня есть API в сетевом ядре, несколько баз данных и несколько клиентов, в функции client_id я получаю информацию о базе данных
По умолчанию токен доступа, выданный с сервера идентификации 4, включает утверждение client_id:
После того, как клиент отправит запрос к вашему веб-интерфейсу API с токеном доступа, на стороне веб-интерфейса API добавьте службы аутентификации в DI и промежуточное ПО аутентификации в конвейер:
1.Добавить пакет Nudent IdentityServer4.AccessTokenValidation в ваш проект
2. Обновите автозагрузку, чтобы она выглядела так:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters();
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ApiName = "api1";
});
}
public void Configure(IApplicationBuilder app)
{
app.UseAuthentication();
app.UseMvc();
}
Тогда вы можете получить претензии, которые включают идентификатор клиента: