Keycloak прокси и APIMAN - токен не найден
Для моего сайта я хотел внедрить APIMAN и keycloak в качестве решения, поэтому я придумал эту архитектуру:
- Keycloak как провайдер аутентификации.
- Apiman как менеджер API
- Nginx как обратный прокси
Apiman установлен за Keycloak Security Proxy, который проверяет, прошел ли пользователь аутентификацию в этой конфигурации:
{
"target-url": "APIMAN_API_ENDPOINT_URL",
"send-access-token": true,
"bind-address": "0.0.0.0", // this is because I'm in a docker container
"http-port": "8999",
"applications": [{
"base-path": "/",
"adapter-config": {
// HERE ARE MY ADAPTER CONFIGURATION
},
"constraints": [{
"pattern": "/*",
"roles-allowed": [
"CUSTOM ROLE"
]
}]
}]
}
Все работало нормально, пока я не попытался реализовать Плагин Keycloak Oauth, следуя этой документации. После настройки мне возвращалось одно и то же сообщение:
{"type": "Authentication", "failCode":11005,"responseCode":401,"message": должен быть указан заголовок "Authorization" OAuth2 или параметр запроса "access_token".","headers":{" records":[]," пустой ": правда}}
Я застрял здесь уже два дня и не знаю, как решить эту проблему. Любая помощь будет оценена.
1 ответ
Это сообщение об ошибке говорит о том, что ваш запрос HTTP API не содержит Authorization
HTTP заголовок ни access_token
Параметр HTTP-запроса.
Вам нужно получить JWT из Keycloak и затем передать его через заголовок или параметр запроса.
Также вы можете проверить, есть ли в вашей цепочке политик только один экземпляр OAuth-политики Keycloak.