首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >密钥罩将自定义属性检索到KeycloakPrincipal

密钥罩将自定义属性检索到KeycloakPrincipal
EN

Stack Overflow用户
提问于 2015-09-20 19:30:18
回答 2查看 75.9K关注 0票数 44

在我的rest服务中,我可以在身份验证之后获得主体信息,使用

代码语言:javascript
运行
复制
KeycloakPrincipal kcPrincipal = (KeycloakPrincipal) servletRequest.getUserPrincipal();

语句。

Keycloak主体没有包含我需要的关于经过身份验证的用户的所有信息。可以自定义我自己的主体类型吗?在keycloak-server端,我开发了一个用户联盟提供者。我看到UserModel使得向我的用户添加一组自定义属性成为可能。

是否可以在代码中插入我自定义主体?

是否可以从keycloak主体检索此属性?

方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-01 22:22:51

要添加自定义属性,您需要做三件事:

  1. Add attributes to admin console
  2. Add claims
  3. Access claims

第一个在这里解释得很好:https://www.keycloak.org/docs/latest/server_admin/index.html#user-attributes

添加声明映射:

  1. 打开您领域的管理控制台。
  2. 转到客户端并打开您的客户端
  3. 这仅适用于设置>访问类型保密或公开(not Mappers
  4. Create to Mappers
  5. Create a mapping to json
  6. Check "Add to ID token“

<

  1. >G224

访问声明:

代码语言:javascript
运行
复制
final Principal userPrincipal = httpRequest.getUserPrincipal();

if (userPrincipal instanceof KeycloakPrincipal) {

    KeycloakPrincipal<KeycloakSecurityContext> kp = (KeycloakPrincipal<KeycloakSecurityContext>) userPrincipal;
    IDToken token = kp.getKeycloakSecurityContext().getIdToken();

    Map<String, Object> otherClaims = token.getOtherClaims();

    if (otherClaims.containsKey("YOUR_CLAIM_KEY")) {
        yourClaim = String.valueOf(otherClaims.get("YOUR_CLAIM_KEY"));
    }
} else {
    throw new RuntimeException(...);
}

希望这对你有帮助,适合你的用例。我将其用于添加自定义主题的自定义属性。

票数 85
EN

Stack Overflow用户

发布于 2017-12-07 02:55:33

  • 选择用户>查找>单击ID >转到属性选项卡>添加属性>例如:电话>保存

映射器选择客户端>单击客户端ID >转到映射器选项卡> create

  • 获取

的自定义属性

更新

  • 在组级别添加'phone‘属性,将用户分配到该组,您将从组级别获取所有用户的'phone’属性
  • 返回映射程序并使用'Aggregate attribute values = true‘和'Multivalued=true’更新'phone‘,您将获得'phone’作为列表,其中包含来自组和用户级别的属性。如果保留'Aggregate attribute values = false‘或'Multivalued=false',则只会得到一个值,其中来自user 'phone’属性将覆盖来自group (这是有意义的)

的'phone‘属性

票数 61
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32678883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档