我正试图从一个用KeyClope保护的Spring Boot应用程序中获取分配给特定用户的角色列表。
我已经在keydepowebsecurityConfigureAdapter
配置类中声明了一个AccessToken
bean,如下所示:
@Configuration
@EnableWebSecurity
@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
public class KeycloakSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
//other config code
@Bean
@Scope(scopeName = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public AccessToken accessToken() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
return ((KeycloakSecurityContext) ((KeycloakAuthenticationToken) request.getUserPrincipal()).getCredentials()).getToken();
}
}
现在我可以在控制器中自动连接AccessToken
,我可以获得ID和用户名等信息,但如何使用AccessToken
获得分配给用户的角色列表?
用于资源角色映射
AccessToken.Access access = accessToken.getResourceAccess(clientId);
Set<String> roles = access.getRoles();
对于领域角色映射,请使用
AccessToken.Access access = accessToken.getRealmAccess();
Set<String> roles = access.getRoles();
使用密钥斗篷创建组并为组分配角色。然后创建用户并将用户分配到特定的组。 要在我的应用程序中访问所有这些,我使用Python Keycoat 如github文档中所述,使用以下代码访问用户信息。 正在获取以下用户信息 如何访问用户的组和角色信息。
我想通过postman中的api将角色添加到特定客户端密钥斗篷中的用户,但我得到了“错误”:“client not Found”这个URL:post-http://localhost:8080/auth/admin/realms/{realmName}/users/{userId}/role-mappings/clients/{clientId} 本机构:
我正在运行KeyCloak,并且我已经使用OIDC集成了Azure AD身份提供程序。 当我尝试获取我创建的自定义领域的令牌时,只有在提供在 KeyCloak 中创建的用户名和密码时,我才能获取令牌。如果我使用 ADFS uid/pwd,我会得到以下响应。 我提出的开机自检请求如下: https:// 我正在请求标头中传递以下信息 谢谢Sateesh
您可在添加员工是分配角色,具体请详见【如何导入员工】 除此之外,您可在【角色】页面通过“管理成员”进行角色分配。(主管,初始管理员除外) 分配角色 点击角色右侧“管理成员”按钮(主管、初始超管除外) 您可在此添加或移除角色成员。 设置主管 您可在部门或项目模块进行主管设置,具体请详见【通过部门、项目管理员工】 设置初始管理员 初始管理员为默认角色,为企业唯一,若需修改,请详见【如何移交初始管理员】
我搜索了以下内容:,但没有找到任何内容。 JDA版本:
我在这里试图实现的是避免将keycloak用户数据库复制到另一个本地数据库,但似乎不可能访问任何其他用户信息,除了当前会话中的一个...