В этой статье блога мы углубимся в сопоставитель атрибутов модели пользователя OIDC в Keycloak. Мы рассмотрим различные методы и предоставим примеры кода, чтобы продемонстрировать, как работать с этой мощной функцией. Независимо от того, являетесь ли вы разработчиком или администратором, это руководство поможет вам понять и эффективно использовать сопоставитель атрибутов модели пользователя OIDC в Keycloak.
Методы работы с сопоставителем атрибутов модели пользователя OIDC:
- Создание нового сопоставителя:
Чтобы создать новый сопоставитель атрибутов модели пользователя OIDC в Keycloak, вы можете использовать REST API администратора Keycloak или консоль администратора Keycloak. Вот пример создания картографа с использованием REST API:
import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.admin.client.resource.RealmResource;
import org.keycloak.admin.client.resource.UserResource;
import org.keycloak.representations.idm.*;
import javax.ws.rs.core.Response;
public class OIDCUserModelAttributeMapperExample {
public static void main(String[] args) {
String adminRealm = "master";
String adminClientId = "admin-cli";
String keycloakUrl = "http://localhost:8080/auth";
String username = "admin";
String password = "admin";
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl(keycloakUrl)
.realm(adminRealm)
.clientId(adminClientId)
.username(username)
.password(password)
.build();
String realmName = "your-realm";
String userId = "user-id";
String mapperName = "custom-mapper";
RealmResource realmResource = keycloak.realm(realmName);
UserResource userResource = realmResource.users().get(userId);
UserRepresentation user = userResource.toRepresentation();
ProtocolMapperRepresentation mapper = new ProtocolMapperRepresentation();
mapper.setName(mapperName);
mapper.setProtocol("openid-connect");
// Set other properties of the mapper as needed
Response response = realmResource.users().get(userId).getFederatedIdentity(identityProvider).addMapper(mapper);
if (response.getStatus() == 201) {
System.out.println("Mapper created successfully.");
} else {
System.out.println("Failed to create mapper.");
}
keycloak.close();
}
}
- Обновление существующего сопоставителя.
Чтобы обновить существующий сопоставитель атрибутов модели пользователя OIDC, вы можете использовать REST API администратора Keycloak или консоль администратора Keycloak. Вот пример обновления картографа с помощью REST API:
// Assuming you have the mapper ID and the updated mapper representation
Response response = realmResource.users().get(userId).getFederatedIdentity(identityProvider).updateMapper(mapperId, updatedMapperRepresentation);
if (response.getStatus() == 204) {
System.out.println("Mapper updated successfully.");
} else {
System.out.println("Failed to update mapper.");
}
- Удаление сопоставителя:
Чтобы удалить сопоставитель атрибутов модели пользователя OIDC, вы можете использовать REST API администратора Keycloak или консоль администратора Keycloak. Вот пример удаления картографа с помощью REST API:
Response response = realmResource.users().get(userId).getFederatedIdentity(identityProvider).removeMapper(mapperId);
if (response.getStatus() == 204) {
System.out.println("Mapper deleted successfully.");
} else {
System.out.println("Failed to delete mapper.");
}
Сопоставитель атрибутов модели пользователя OIDC в Keycloak — это универсальный инструмент, который позволяет настраивать и сопоставлять атрибуты пользователя в потоках OIDC. В этой статье мы рассмотрели различные методы создания, обновления и удаления картографов на примерах кода. Используя Сопоставитель атрибутов модели пользователя OIDC, вы можете расширить функциональность и адаптировать Keycloak к вашим конкретным требованиям.