钥匙斗篷与Spring Boot集成



如何将keycaptain与spring-boot应用程序集成。我们必须在application.properties中授予所有资源及其角色权限吗?那么keyclock.json有什么用呢?然后我需要一些关于keycloft管理控制台中导出设置的澄清。我们必须在应用程序的配置中包含该文件吗?

1(首先将这些依赖项添加到您的build.gradle中(我使用的是gradle,但如果您是Maven,则pom.xml也是如此(:

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

2( 然后在application.properties文件中提供您的Key斗篷配置(此时您应该已经配置了您的领域,并通过Key斗篷web ui添加了一个客户端(:

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/*

如果添加了spring-boot适配器,并且所有配置都在application.properties中进行,则不想添加key斗篷.json。在key斗篷控制台中导出用于导出控制台中所有角色、资源、策略和所有其他配置。这只是为了导出特定领域的设置。

最新更新