Spring boot KeyClope与Spring Boot的集成

Spring boot KeyClope与Spring Boot的集成,spring-boot,keycloak,Spring Boot,Keycloak,如何将KeyClope与spring引导应用程序集成。我们是否必须在application.properties中授予所有资源及其角色权限?那么keydape.json的用途是什么?然后,我需要一些关于这些导出设置在keydepeat的管理控制台的澄清。我们必须在应用程序的配置中包含该文件吗?1)首先将这些依赖项添加到您的build.gradle(我使用的是gradle,但如果您是一个专业人士,它对于pom.xml也是一样的): 2) 然后在application.properties文件中提供

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

1)首先将这些依赖项添加到您的
build.gradle
(我使用的是gradle,但如果您是一个专业人士,它对于
pom.xml
也是一样的):

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

在这里,我允许任何人访问
/test-endpoint-1/*
上的所有内容,而具有[ROLE-2]角色的管理员用户可以访问
/test-endpoint-2/*
下的任何内容

啊,忘了提一下,客户端
访问类型
仅承载
。是的,使用此设置,您不需要
keydape.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引导适配器并且在application.properties.Export中进行了所有配置,则不希望添加keydove.json。keydove控制台中的Export用于导出所有这些角色、资源、,在控制台中创建的策略和所有其他配置。这只是导出特定领域的设置。

是的,它有帮助。不需要keydape.json。如何为基于声明的策略推送cliam?您是指角色吗?你能详细说明一下你想要实现什么吗?var context=$evaluation.getContext();var identity=context.getIdentity();var attributes=identity.getAttributes();如果(identity.location=='mumbai'){$evaluation.grant();}如何检查基于用户属性的策略?您可以使用keydrope的RESTAPI。另一种选择是使用KeyClope中的Spring安全提供程序并获取主体对象。
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'
}
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/*