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.

Другие вопросы по тегам