Я пытаюсь использовать keycloak + keycloak-gatekeeper для авторизации в личном API: api.mydomain.com
.до сих пор я сделал:
- Создано царство
MY-REALM
в Keycloak, URL для Keycloak: https://auth.mydomain.com - Создано
confidential client
в той же области с Authorization Enabled
ON и Valid redirect URIS
: https://api.mydomain.com/* - Создан пользователь
- Внутри моего сервера https://api.mydomain.com указывает на 127.0.0.1:5000
- 127.0.0.1: 5001 - это "настоящий API"
- Сконфигурированный keycloak-gatekeeper с этим config.yaml:
client-id: <MY-API-CLIENT-ID>
client-secret: <SECRET>
discovery-url: https://auth.mydomain.com/auth/realms/<MY-REALM>
enable-default-deny: true
listen: 127.0.0.1:5000
upstream-url: http://127.0.0.1:5001
verbose: true
enable-logging: true
enable-security-filter: true
enable-json-logging: true
Прямо сейчас, если я получаю доступ в браузереhttps://api.mydomain.com Я перенаправлен на https://auth.mydomain.com с просьбой ввести имя пользователя и пароль.Я предоставляю пользователю, созданному в точке 3 и, как и ожидалось, снова перенаправленный на https://api.mydomain.com., пока все хорошо.
Проблема заключается в конфигурации части авторизации: In keycloak -> Clients
-> <MY-API-CLIENT-ID>
-> Authorization
-> Resources
Я изменяю политику по умолчанию на Запретить каждый запрос в resource
/ *, но я могу получить доступ к любому ресурсу (URL) в https://api.mydomain.com, как и прежде.
Я попытался:
- Ограничить ролью области (только администраторы могут получить доступ к определенному ресурсу).
- Ограничить областью действия.
- Отрицать логику в политике.
- Ограничить ролью клиента.
- Молиться.
- Плач.
Конечно, я попробовал каждую комбинацию из вышеперечисленного во вкладке Evaluate
на Keycloak и эффективно здесь смоделированную политику показать DENY .
Так что я делаюнеправильно?Кстати, после каждого запроса это журнал от keycloak-gatekeeper:
{"level":"debug","ts":1554936731.4022436,"caller":"keycloak-gatekeeper/middleware.go:337","msg":"access permitted to resource","access":"permitted","email":"testmail@mail.com","expires":201.59779997,"resource":"/*"}
Любые идеи будут высоко оценены.