在我的Rest服务中,我可以通过使用身份验证后获得主体信息
KeycloakPrincipal kcPrincipal = (KeycloakPrincipal) servletRequest.getUserPrincipal();
陈述
密钥斗篷主体不包含我需要的关于已验证用户的所有信息。是否可以自定义我自己的主体类型?在密钥斗篷服务器端,我开发了一个用户联合提供程序。我看到UserModel可以向我的用户添加一组自定义属性。
可以在代码中插入我的自定义主体吗?
是否可以从KeyClope主体检索此属性?
有什么办法?
选择客户端
获取自定义属性
使现代化
>
在组级别添加“phone”属性,将用户分配到该组,然后从组级别为所有用户获取“phone”属性
返回映射器并使用“聚合属性值=true”和“多值=true”更新“phone”,您将获得“phone”作为列表,其中包含组和用户级别的属性。如果您保留“聚合属性值=false”或“多值=false”,您只会得到一个值,其中来自用户的“phone”属性将覆盖来自组的“phone”属性(这是有意义的)
要添加自定义属性,您需要做三件事:
第一个在这里解释得很好:https://www.keycloak.org/docs/latest/server_admin/index.html#user-attributes
添加索赔映射:
访问声明:
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(...);
}
希望这有助于并适合您的使用情况。我将其用于添加自定义主题的自定义属性。
我使用Reactjs作为前端。我想从javascript端检索自定义属性。就像这个答案所说的。 https://stackoverflow.com/a/32890003/2940265 但我找不到如何在javascript端实现它。 我在Chrome中进行了调试,但找不到适合自定义属性的结果。 请帮帮忙
是否可以通过KeyClope REST API更新自定义属性的值?例如,要使用哪个endpoint,以及如何为此处创建的属性构造请求主体。 谢谢
我们正在使用Vert实现RESTful服务和整个后端应用程序。x、 这些API由一款混合移动应用程序(使用Ionic/angularjs开发)使用。我们正在使用KeyClope进行用户管理,并在应用程序上进行身份验证和授权。 我的问题是,我如何使用keydove来保护(对同一组用户进行身份验证和授权)我的RESTful服务访问,这是使用Vert实现的。x、 任何示例实现都将非常有用。
在注册时,KeyClope提供了通过KeyClope主题的注册页面模板,通过“输入”元素添加自定义用户属性的能力,这些元素看起来像: 但是,这似乎只有在用户创建帐户并提交表单时才有效。 如果用户通过社交身份提供商(谷歌、微软、github等)登录我们如何添加自定义用户属性?
我想从react js客户端和后端节点js使用KeyClope社交登录。我找不到任何方法从KeyClope生成红色标记的链接。 http://localhost:8080/auth/realms/softspace/broker/github/login?client_id=account 我不知道他们是如何生成标签id和会话代码的。
请让我知道,如果这是不是正确的地方发布,但我一直在寻找有关这方面的信息,似乎找不到一个简洁的答案。 我一直在尝试使用KeyClope来满足我们应用程序的用户管理需求。虽然我发现KeyClope非常有能力,也非常有效,但我已经进入了我们使用的死胡同。 背景: 传统上,我们的应用程序使用一个非常基本的登录框架来验证身份验证。然后使用我们无法更改的第三方应用程序,确定用户将通过wsdl操作拥有的角色,并