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();
Другие вопросы по тегам