我正在尝试以编程方式访问keycloak中的创建用户。但我得到403作为状态代码。我正在关注以下链接。
https://technology.first8.nl/programmatically-adding-users-in-keycloak/
任何人都可以帮助我吗?在此先感谢
我使用以下代码创建用户
Keycloak kc = Keycloak.getInstance(
"http://{server name}:8080/auth",
"{realm name}", // the realm to log in to
"{useraname}",
"{password}", // the user
"{client id}",
"{client secret key}");
CredentialRepresentation credential = new CredentialRepresentation();
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue("test123");
UserRepresentation user = new UserRepresentation();
user.setUsername("codeuser");
user.setFirstName("sampleuser1");
user.setLastName("password");
user.setCredentials(Arrays.asList(credential));
user.setEnabled(true);
Response result = kc.realm("{realm name}").users().create(user);
response.status即将成为403
答案 0 :(得分:1)
答案 1 :(得分:1)
答案 2 :(得分:1)
我在KeyCloak 9.0.3中遇到了同样的问题。 最终对我有用的是:
curl \
-d "client_id=admin-cli\
-d "client_secret=<YOUR_CLIENT_SECRET>" \
-d "grant_type=client_credentials" \
"http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token"
我不确定为什么,但是对我来说,在主域上使用管理客户端根本不起作用。
使用上面正确答案中提到的角色在目标领域中设置admin-cli客户端。
除了将新角色添加到“范围”之外,我还必须将该角色添加到“服务帐户角色”。
BTW客户端凭据访问令牌在Keycloak 9.0.3的Admin Rest API文档中甚至没有提到,但它确实有效。