Keycloak Applications vs Client аутентификация
Привет, я немного запутался в том, как защитить приложения с помощью keycloak, на сайте показано, как защитить клиентов. Приложение, которое мне нужно защитить в моей настройке, является настольным приложением, которое использует защищенные конечные точки keycloak + keycloak-gatekeeper.
мне удалось заставить его работать, используя следующую библиотеку в Python
https://bitbucket.org/agriness/python-keycloak/src/master/
однако, это требует, чтобы я ввел секрет клиента, и мне интересно, безопасно ли это?
Кроме того, когда я использую логин вместо браузера, браузер не нуждается в секрете клиента, но идет через гейткипер, это говорит мне, что я здесь что-то не так делаю.
Спасибо
2 ответа
Использовать клиент с общедоступным типом доступа (документ для клиентов):
Тип общего доступа предназначен для клиентов на стороне клиента, которым необходимо выполнить вход в браузер. С клиентским приложением невозможно сохранить секреты. Вместо этого очень важно ограничить доступ, настроив правильные URI перенаправления для клиента.
Вы можете изменить тип доступа на clients
- choose client
- settings tab
интерфейс администратора.
в вашем случае я бы использовал тип доступа как конфиденциальный, а авторизация включена> на
и вы должны использовать секретный ключ, чтобы авторизовать ваш вызов keylock, когда вы хотите взаимодействовать с API keycloak
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("localhost")
.realm("myRealm")
.grantType(OAuth2Constants.PASSWORD)
.clientId("myclient")
.clientSecret("xxxx-xxxxx-xxxx-xxx")
.username("foo")//the admin user
.password("password")
.build();
keycloak.realm("myRealm").users().list();