这是下面的简单代码我试图在主Realm中创建Keycloak用户。
但我在Bad request
中收到Keycloak
作为回报并低于警告:
10:27:58,256 WARN [org.keycloak.events](默认任务-111)type = LOGIN_ERROR,realmId = master,clientId = security-admin-console,userId = null,ipAddress = 127.0.0.1,error = not_allowed,auth_method = oauth_credentials,grant_type = password,client_auth_method = client-secret
Keycloak kc = Keycloak.getInstance("http://localhost:8080/auth", "master", "admin", "password","security-admin-console");
CredentialRepresentation credential = new CredentialRepresentation();
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue(password);
credential.setTemporary(false);
UserRepresentation user = new UserRepresentation();
user.setUsername(username);
user.setFirstName("Test");
user.setLastName("User");
user.setEnabled(true);
user.setCredentials(Arrays.asList(credential));
kc.realm("master").users().create(user);
答案 0 :(得分:1)
access_token
。因此,您需要为您正在使用的客户端检查Direct Access Grants Enabled: ON
。默认情况下,它为客户端admin-cli
启用。但是,看起来,它已被security-admin-console
禁用。
我认为最好使用admin-cli
。
例如,也尝试使用Postman的HTTP请求执行相同的操作。 你需要:
access_token
您可以在此处找到使用Admin REST API的完整示例: https://github.com/v-ladynev/keycloak-nodejs-example
此示例使用Node.js.但您可以分析代码以更好地了解如何使用REST API。