You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义RoleStorageProvider实现后,如何在Keycloak管理控制台使用?

问题描述

已实现自定义UserStorageProvider,可从外部JDBC存储完成用户的加载、增删改查操作,并为每个用户映射仓库中的角色。目前希望将外部仓库中的所有角色加载到Keycloak Realm,支持角色的增删改及用户角色映射功能。已实现RoleStorageProvider及其Factory并成功加载到Keycloak,但不清楚如何在管理控制台中使用该提供者,寻求指导。

已实现代码

CustomRoleStorageProvider类

public class CustomRoleStorageProvider implements
RoleStorageProvider,
RoleLookupProvider,
RoleProvider
{

protected EntityManager em;
protected ComponentModel model;
protected KeycloakSession session;

public CustomRoleStorageProvider(KeycloakSession session, ComponentModel model) {
    this.model = model;
    this.session = session;
    this.em = session.getProvider(JpaConnectionProvider.class, "user-store").getEntityManager();
}

// { 所有提供者方法的实现代码在此处 ..}

}

CustomRoleStorageProviderFactory类

public class CustomRoleStorageProviderFactory implements RoleStorageProviderFactory {

public static final String PROVIDER_ID = "JDBC ROLES";
@Override
public CustomRoleStorageProvider create(KeycloakSession keycloakSession, ComponentModel componentModel) {
    log.info(">>>>>>>> Creating Roles factory >>>>>>>>");
    return new CustomRoleStorageProvider(keycloakSession, componentModel);
}

@Override
public String getId() {
    return PROVIDER_ID;
}

@Override
public void close() {
}

}
管理控制台使用步骤
  1. 进入目标Realm
    登录Keycloak管理控制台,选择你要配置角色存储的目标Realm。

  2. 添加角色存储提供者组件

    • 左侧导航栏选择「组件」(Components)
    • 点击顶部的「添加组件」(Add component)按钮
    • 在「组件类型」(Component Type)下拉菜单中选择「角色存储提供者」(Role Storage Provider)
    • 在「提供者」(Provider)列表中找到你定义的JDBC ROLES,点击「下一步」(Next)
    • 填写组件名称(例如「外部JDBC角色存储」),如果你的提供者需要额外配置参数(如自定义JDBC连接属性等),按需填写后点击「保存」(Save)
  3. 验证角色加载
    回到当前Realm的「角色」(Roles)页面,切换到「用户联合角色」(User-Federated Roles,部分版本叫「联合角色」Federated Roles)标签页,即可查看从外部JDBC存储加载的角色列表。

  4. 角色操作与用户映射

    • 若你正确实现了RoleProvider接口的增删改方法,可直接在控制台对这些外部角色进行创建、编辑、删除操作(具体功能取决于你的方法实现逻辑)
    • 进入用户详情页的「角色映射」(Role Mappings)页面,在「可用角色」(Available Roles)区域可看到外部存储的角色,直接勾选即可为用户分配对应角色。

内容的提问来源于stack exchange,提问作者Vitos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:30:11