Интеграция Keycloak с Spring Boot - PullRequest
0 голосов
/ 27 ноября 2018

Как интегрировать keycloak с приложением весенней загрузки.Нужно ли нам давать все ресурсы и разрешение на их роль в application.properties?Тогда в чем польза от keycloak.json?Затем мне нужно уточнить некоторые настройки экспорта в консоли администратора keycloak.Нужно ли включать этот файл в конфигурацию приложения?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Не хочет добавлять keycloak.json, если добавлен адаптер весенней загрузки и все конфигурации выполнены в application.properties. Экспорт в консоли keycloak используется для экспорта всех этих ролей, ресурсов, политик и всех других выполненных конфигураций.в консоли. Это просто для экспорта настроек этой конкретной области.

0 голосов
/ 29 ноября 2018

1) Сначала добавьте эти зависимости к вашему build.gradle (я использую gradle, но то же самое для pom.xml, если вы парень из Maven):

// keycloak
compile 'org.keycloak:keycloak-spring-boot-adapter:2.5.1.Final'
compile 'org.keycloak:keycloak-tomcat8-adapter:2.5.1.Final'

2) Затемукажите конфигурацию Keycloak в файле application.properties (к этому времени вы должны были настроить свою область и добавить клиента через веб-интерфейс Keycloak):

keycloak.realm=[YOUR-REALM]
keycloak.bearer-only=true
keycloak.auth-server-url=https://[YOUR-KEYCLOAK-INSTANCE-ADDRESS]:[PORT]/auth
keycloak.ssl-required=external
keycloak.resource=[CLIEND-ID]
keycloak.credentials.secret=[YOUR-CLIENT-SECRET-ID]
keycloak.cors=true


keycloak.securityConstraints[0].securityCollections[0].name=insecure stuff
keycloak.securityConstraints[0].securityCollections[0].patterns[0]=/test-endpoint-1/*

keycloak.securityConstraints[1].securityCollections[0].name=admin stuff
keycloak.securityConstraints[1].securityCollections[0].authRoles[0]=[ROLE-2]
keycloak.securityConstraints[1].securityCollections[0].patterns[0]=/test-endpoint-2/*

Здесь я позволяю любому получить доступ ко всемув /test-endpoint-1/*, тогда как пользователи-администраторы с ролью [ROLE-2] могут получить доступ ко всему под /test-endpoint-2/*.

Ах, забыл упомянуть, клиент Access Type имеет значение bearer-only.И да, с этой настройкой вам не нужно keycloak.json.Надеюсь, это поможет:)

ОБНОВЛЕНИЕ

Новый API немного изменился, поэтому, учитывая последние версии:

kotlinVersion = '1.3.10'
springBootVersion = '2.1.1.RELEASE'
keycloakVersion = '4.6.0.Final'

dependencyManagement {
    imports {
        mavenBom "org.keycloak.bom:keycloak-adapter-bom:${keycloakVersion}"
    }
}

dependencies {
    // keycloak
    compile 'org.keycloak:keycloak-spring-boot-starter'
}

application.properties в этом случае будет выглядетькак следующее:

keycloak.realm=[YOUR-REALM]
keycloak.bearer-only=true
keycloak.auth-server-url=https://[YOUR-KEYCLOAK-INSTANCE-ADDRESS]:[PORT]/auth
keycloak.ssl-required=external
keycloak.resource=[CLIEND-ID]
keycloak.credentials.secret=[YOUR-CLIENT-SECRET-ID]
keycloak.cors=true
keycloak.enabled=true

keycloak.securityConstraints[0].securityCollections[0].name=insecure stuff
keycloak.securityConstraints[0].securityCollections[0].patterns[0]=/test-endpoint-1/*


keycloak.securityConstraints[1].securityCollections[0].name=admin stuff
keycloak.securityConstraints[1].authRoles[0]=[ROLE-2]
keycloak.securityConstraints[1].securityCollections[0].patterns[0]=/test-endpoint-2/*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...