Изучение сопоставителя атрибутов модели пользователя OIDC в ​​Keycloak: подробное руководство

В этой статье блога мы углубимся в сопоставитель атрибутов модели пользователя OIDC в ​​Keycloak. Мы рассмотрим различные методы и предоставим примеры кода, чтобы продемонстрировать, как работать с этой мощной функцией. Независимо от того, являетесь ли вы разработчиком или администратором, это руководство поможет вам понять и эффективно использовать сопоставитель атрибутов модели пользователя OIDC в ​​Keycloak.

Методы работы с сопоставителем атрибутов модели пользователя OIDC:

  1. Создание нового сопоставителя:
    Чтобы создать новый сопоставитель атрибутов модели пользователя 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();
    }
}
  1. Обновление существующего сопоставителя.
    Чтобы обновить существующий сопоставитель атрибутов модели пользователя 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.");
}
  1. Удаление сопоставителя:
    Чтобы удалить сопоставитель атрибутов модели пользователя 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 к вашим конкретным требованиям.