问题
I am trying to access the create a user in the keycloak programmatically. But I am getting 403 as a status code. I am following the below link.
https://technology.first8.nl/programmatically-adding-users-in-keycloak/
Can anyone help me? Thanks In advance
I have using the following code to create user
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 is coming as 403
回答1:
I faced the same issue. This is how i fixed it.
- Create a role that has at least a realm-management role of
manage-users
UI update for server 9.0.2
- Go to your client's
Scope
tab and add the role to yourRealm Roles
回答2:
If you are not using admin
user from master
realm.
You need to assign proper roles like manage-users
role from realm-management
client for the user which you are using to get instance the instance of Keycloak.
回答3:
I faced the same issue with KeyCloak 9.0.3. What finally worked for me was:
- Use the admin-cli client with client credentials on the target realm (where I am trying to create the user)
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"
I am not sure why, but using the admin client on the master realm simply did not work for me.
Set up the admin-cli client in the target realm with the role as mentioned in the correct answer above.
In addition to adding the new role to Scope, I also had to add the role to Service Account Roles.
BTW client credentials access token is not even mentioned as an option in the Admin Rest API docs for Keycloak 9.0.3, but it does work.
来源:https://stackoverflow.com/questions/49511606/cannot-create-user-in-the-keycloak-getting-403-status