Я хочу использовать этот не поддерживаемый проект для того, чтобы авторизовать сервисы моего веб-API, поскольку нам необходимо использовать Keycloak.
Это было довольно легко выполнить учебник и заставить его работать в моем веб-интерфейсе, но я не могу найти ни одного примера использования токенов вместо интерактивного входа в систему.Веб-API получит с запросом http заголовок авторизации нашего уже зарегистрированного клиента, и цель состоит в том, чтобы изолировать службы и авторизовать их на основе некоторых ролей.
Я внес некоторые изменения в Startup.cs -Метод конфигурации:
ConfigureAuth(app);
app.UseKeycloakAuthentication(new KeycloakAuthenticationOptions
{
// App-Specific Settings
ClientId = "demo-app", // *Required*
ClientSecret = "ssshhhh", // If using public authentication, delete this line
VirtualDirectory = "", // Set this if you use a virtual directory when deploying to IIS
// Instance-Specific Settings
Realm = "PruebaRealm", // Don't change this unless told to do so
KeycloakUrl = "http://example.com/auth", // Enter your Keycloak URL here
// Template-Specific Settings
EnableWebApiMode = true,
AuthenticationType = "KeycloakOwinAuthenticationSample_keycloak_auth", // Unique identifier for the auth middleware
});
И я добавил атрибут авторизации в метод htttp:
[Authorize]
public IHttpActionResult Get()
{
PrivilegeProvider pPrivileges = new PrivilegeProvider();
var searchResults = pPrivileges.GetPrivilege();
if (searchResults == null)
return NotFound();
return Ok(searchResults);
}
Когда я выполняю запрос, включая заголовок авторизации
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: es-ES,es;q=0.9
Authorization: bearer thisisanexamplethisisanexamplethisisanexample....
Cache-Control: no-cache
Connection: keep-alive
Host: localhost:49729
Origin: http://localhost:4200
Pragma: no-cache
Referer: http://localhost:4200/privilegios
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36
Я всегда получаю:
Access Unauthorized: Requires valid bearer token authorization header
Может кто-нибудь дать мне совет для достижения этой цели?Я подумываю о создании собственного адаптера с помощью owin.
Заранее спасибо.