Какова цель URL-адреса перенаправления в привратнике keycloak?

Я пытаюсь настроить Keycloak Gatekeeper в качестве обратного прокси перед моей службой, но я не знаю, для чего нужен redirection-url. Я решил, что могу просто поставить Gatekeeper перед своей службой, и моей службе не нужно будет ничего знать об authn / z. Это не представляется возможным, если требуется конечная точка обратного вызова.

Мне удалось развернуть Keycloak Server, Keycloak Gatekeeper и простую службу узлов (все они развернуты локально в контейнерах докеров). Немного взломав мой файл hosts, я смог отправить запрос в Gatekeeper, который правильно аутентифицировал меня и перенаправил обратно в службу моего узла. Однако моей службе узла потребовалось добавить конечную точку /oauth/callback, поскольку гейткипер добавляет этот суффикс ко всему, что указано в redirection-url.

Вот как выглядит моя конфигурация Gatekeeper:

discovery-url: http://keycloak-server:8080/auth/realms/master
client-id: proxy-node-server
client-secret: abcabcab-abca-abca-abca-abcabcabcabc
listen: ':3001'
enable-refresh-tokens: true
redirection-url: http://node-server:3000
encryption-key: <ENCRYPTION_KEY>
upstream-url: http://node-server:3000
resources:
- uri: /*
secure-cookie: false

Я ожидаю, что смогу поставить Gatekeeper перед службой, которая не знает об аутентификации, авторизации, OIDC и т. Д., Но с redirection-url, что кажется невозможным.

Есть ли способ заставить Gatekeeper выполнять аутентификацию, когда это необходимо, и просто действовать как простой прокси, когда пользователь правильно аутентифицирован? Или я чего-то не понимаю, где это невозможно?


person Andrew D.    schedule 15.10.2019    source источник


Ответы (1)


Помощь привратника:

--redirection-url      value redirection url for the oauth callback url, defaults to host header is absent [$PROXY_REDIRECTION_URL]

Вам нужно будет использовать redirection-url, только когда привратник находится за балансировщиком нагрузки или другим обратным прокси. Это redirection-url требуется для потока Open ID Connect. Когда пользователь аутентифицирован, redirect-url, конечно, не применяется.

person Jan Garaj    schedule 15.10.2019
comment
Обнаружена проблема, заключающаяся в отсутствии идентификатора клиента в aud для токена доступа. Все еще просто вижу пустую страницу, а теперь получаю 400 вместо 403, но прогрессирующий. Буду обновлять, если найду что-нибудь еще. - person Andrew D.; 15.10.2019
comment
Оказывается, express не нравится ~ что-то в запросе ~ размер заголовков запроса и считает его некорректным (400). Мне удалось заставить его работать с эхо-сервером. Спасибо - person Andrew D.; 15.10.2019