Я реализовал токен-сервер, используя Identity Server 4.
Я добавил пользовательскую конечную точку API на токен-сервер и борюсь с аутентификацией.Настраиваемая конечная точка наследуется от ControllerBase и имеет 3 метода (GET, POST, DELETE).
Я намерен вызывать настраиваемую конечную точку из другого API, используя выделенного клиента с учетными данными (сервер-сервер), реализованного как HttpClientв .NET Core.В этом не участвует ни один пользователь.
Для получения токена доступа я использую IdentityModel DiscoveryClient и TokenEndpoint.
Итак, в общем, до сих пор я сделал следующее:
- настроить «обычный» сервер идентификации и проверить его работоспособность -> он работает
- реализовать настраиваемую конечную точку и протестировать ее без авторизации -> он работает
- добавить другой ресурс API («api.auth»)) с настраиваемой областью «api.auth.endpoint1»
- настроить клиент с учетными данными клиента, разрешающими доступ к области «api.auth.endpoint1».
- реализовать HttpClient и настройку теста ->Я получаю токен доступа через конечную точку токена модели идентификации.
Теперь, когда я вызываю конечную точку, используя HttpClient с полученным токеном доступа, я получаю код ответа 200 (ОК), но содержимоеСтраница входа в систему сервера идентификации.
В документации Identity Server 4 указано использование
services.AddAuthentication()
.AddIdentityServerAuthentication("token", isAuth =>
{
isAuth.Authority = "base_address_of_identityserver";
isAuth.ApiName = "name_of_api";
});
, а также
[Authorize(AuthenticationSchemes = "token")]
UnfortunatЛи компилятор заявляет, что .AddIdentityServerAuthentication не может быть найден.Я пропускаю специальный нюгет?
Нюгетами, которые я до сих пор использую на сервере токенов, являются:
- IdentityServer4 (v2.2.0)
- IdentityServer4.AspNetIdentity (v2.1.0)
- IdentityServer4.EntityFramework (v2.1.1)
Разобрался с этой частью.Пропущенный nuget для AddIdentityServerAuthentication:
- IdentityServer4.AccessTokenValidation
Борьба с авторизацией на основе настраиваемой области.
Кто-нибудь знает, как безопасностьдолжен быть настроен?