Spring boot Spring Boot中的KeyClope管理客户端
在spring boot中使用KeyClope管理客户端时遇到一些问题 如果我尝试使用此代码,会得到401个未经授权的密码:Spring boot Spring Boot中的KeyClope管理客户端,spring-boot,keycloak,Spring Boot,Keycloak,在spring boot中使用KeyClope管理客户端时遇到一些问题 如果我尝试使用此代码,会得到401个未经授权的密码: public Keycloak getKeycloakInstance() { var keycloak = KeycloakBuilder.builder() .serverUrl(SERVER_URL) .realm(REALM) .username(USERNAME) .password(PASSWORD) .clientId(CL
public Keycloak getKeycloakInstance() {
var keycloak = KeycloakBuilder.builder()
.serverUrl(SERVER_URL)
.realm(REALM)
.username(USERNAME)
.password(PASSWORD)
.clientId(CLIENT_ID)
.build();
return keycloak;
}
还有,如果我把.resteasyClient。。。。还有,客户秘密。。。在上面的代码中,我得到了一个错误的请求
在客户端角色中,我创建了一个新的复合角色,并将所有领域管理角色都分配给它,也许我配置了一些错误的东西
在哪里可以找到有关如何使用此管理客户端依赖关系的文档
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>10.0.0</version>
</dependency>
问题由@zonaut回答。也许这对某人有帮助
就我个人而言,我会选择示例2,在我们进行服务对服务的通信时创建一个专用的服务帐户客户端
示例1->使用用户
在您想要的领域->Keyclope admin下创建新客户端
选择仅启用直接访问授权的公共客户端
创建新角色,启用复合角色
在复合角色下的客户端角色中键入领域管理
添加所需的可用角色
选择一个用户并打开“角色映射”选项卡
在客户端角色中键入keydape admin并添加所需的角色
代码:
示例2->使用机密服务帐户
在您想要的领域->Keyclope admin下创建新客户端
选择仅启用服务帐户的机密客户端
选择选项卡服务帐户角色
在客户端角色中键入领域管理
添加所需的可用角色
代码:
示例3->使用管理员帐户
您还可以将admin用户与密码授权一起使用,并使用现有的admin cli客户端
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("http://localhost:8080/auth")
.grantType(OAuth2Constants.PASSWORD)
.realm("master")
.clientId("admin-cli")
.username("admin")
.password("password")
.resteasyClient(
new ResteasyClientBuilder()
.connectionPoolSize(10).build()
).build();
keycloak.tokenManager().getAccessToken();
RealmResource realmResource = keycloak.realm("realm-name");
问题由@zonaut回答。也许这对某人有帮助
就我个人而言,我会选择示例2,在我们进行服务对服务的通信时创建一个专用的服务帐户客户端
示例1->使用用户
在您想要的领域->Keyclope admin下创建新客户端
选择仅启用直接访问授权的公共客户端
创建新角色,启用复合角色
在复合角色下的客户端角色中键入领域管理
添加所需的可用角色
选择一个用户并打开“角色映射”选项卡
在客户端角色中键入keydape admin并添加所需的角色
代码:
示例2->使用机密服务帐户
在您想要的领域->Keyclope admin下创建新客户端
选择仅启用服务帐户的机密客户端
选择选项卡服务帐户角色
在客户端角色中键入领域管理
添加所需的可用角色
代码:
示例3->使用管理员帐户
您还可以将admin用户与密码授权一起使用,并使用现有的admin cli客户端
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("http://localhost:8080/auth")
.grantType(OAuth2Constants.PASSWORD)
.realm("master")
.clientId("admin-cli")
.username("admin")
.password("password")
.resteasyClient(
new ResteasyClientBuilder()
.connectionPoolSize(10).build()
).build();
keycloak.tokenManager().getAccessToken();
RealmResource realmResource = keycloak.realm("realm-name");
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("http://localhost:8080/auth")
.grantType(OAuth2Constants.PASSWORD)
.realm("master")
.clientId("admin-cli")
.username("admin")
.password("password")
.resteasyClient(
new ResteasyClientBuilder()
.connectionPoolSize(10).build()
).build();
keycloak.tokenManager().getAccessToken();
RealmResource realmResource = keycloak.realm("realm-name");