我们正在评估KeyCloak,以取代用户注册和身份验证的自定义实现。
我们目前的工作流程提供了一个注册屏幕,用户可以在其中自我注册.在提交注册表格时,会触发一个自定义验证流程,然后向用户发送电子邮件,以验证他们的电子邮件并激活他们的帐户。电子邮件中的链接允许他们设置密码,然后向他们发送一封欢迎邮件。
我正在使用Admin客户端API来实现这个工作流。我已经得到了电子邮件验证部分。
我的问题:
发布于 2020-08-14 09:25:31
在调用用户创建API时,在凭据对象(auth/admin/realms/API/对象)中设置。下面提到的示例JSON主体。然后,用户将在初始登录时被重定向到Keycloak,以更改密码。
{
"createdTimestamp": 1587754061774,
"username": "John",
"enabled": true,
"firstName": "John",
"totp": false,
"emailVerified": true,
"disableableCredentialTypes": [],
"requiredActions": [],
"notBefore": 0,
"groups": [],
"credentials": [{
"type":"password",
"value":"1qaz@WSX",
"temporary":true
}],
"access": {
"manageGroupMembership": true,
"view": true,
"mapRoles": true,
"impersonate": true,
"manage": true
}
}
发布于 2020-08-14 13:40:38
谢谢CodeWalter..。对于其他可能需要它的人,我就是这样使用Java客户机的。
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl(SERVER_URL)
.realm(MASTER_REALM)
.grantType(OAuth2Constants.CLIENT_CREDENTIALS)
.clientId(CLIENT_ID)
.clientSecret(CLIENT_SECRET)
.build();
// Define user
UserRepresentation user = new UserRepresentation();
user.setEnabled(true);
user.setUsername("first.last@gmail.com");
user.setFirstName("First");
user.setLastName("Last");
user.setEmail("first.last@gmail.com");
user.setAttributes(Collections.singletonMap("MRN", Arrays.asList("11111")));
// Define password credential
CredentialRepresentation passwordCred = new CredentialRepresentation();
passwordCred.setTemporary(true);
passwordCred.setType(CredentialRepresentation.PASSWORD);
passwordCred.setValue("Password@1");
user.setCredentials(Arrays.asList(passwordCred));
// Get realm
RealmResource realmResource = keycloak.realm(PHUB_REALM);
UsersResource usersRessource = realmResource.users();
// Create user (requires manage-users role)
Response response = usersRessource.create(user);
String userId = CreatedResponseUtil.getCreatedId(response);
System.out.println("Response: " + response.getStatusInfo());
System.out.println(userId);
UserResource u = realmResource.users().get(userId);
u.sendVerifyEmail();
https://stackoverflow.com/questions/63398916
复制相似问题