首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引力管理-rest-api oauth角色映射

引力管理-rest-api oauth角色映射
EN

Server Fault用户
提问于 2021-01-31 15:24:29
回答 1查看 167关注 0票数 1

Gravitee管理器可以按照描述的这里配置密钥披风身份验证。

他们在他们的文档中说,角色映射可以在他们的gravitee.yml配置中解决:

代码语言:javascript
复制
security:
  providers:
    - type: oidc
      roleMapping:
        - condition: "{#jsonPath(#profile, '$.job_id') != 'API_MANAGER'}"
          roles:
            - "PORTAL:PARTNER"
            - "MANAGEMENT:API_CONSUMER"

如何正确映射#profile jonPath?在java例外情况下,我尝试了下一个SpEl配置:

代码语言:javascript
复制
"{#jsonPath(#profile, 'gravitee-admin' in '$.realm_access.roles')}"
EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-01-31 18:04:14

TL;DR

配置文件只能被断言为SpEl字符串,确保您在密钥披风控制台上启用组映射器:(客户范围->创建“组”\Mappers>添加内置->组添加选定,客户端->我的机密-客户->客户范围->添加“组”)。

使用此配置,可以使用regex完成匹配组:

代码语言:javascript
复制
{(#jsonPath(#profile, '$.groups') matches 'gravitee-admin' )}

注意uid选项:“在每次用户身份验证期间都会计算组和角色映射。平台管理员仍然能够覆盖映射,但这些映射将在下一次用户身份验证后刷新。”我不太明白在yaml上配置它的位置。

在3.5.2版本中,用户角色映射为“槽”:

代码语言:javascript
复制
userRoles = computeUserRolesFromProfile(email, socialProvider.getRoleMappings(), userInfo); // 1)

函数由电子邮件(如果在客户端作用域上可用)、SpEl函数和/protocol/openid返回的json (连接/userinfo端点)调用:

代码语言:javascript
复制
private Set computeUserRolesFromProfile(String userId, List mappings, String userInfo) {

#profile (userinfo)是唯一的上下文变量,是通过SpEl操作的

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

https://serverfault.com/questions/1051843

复制
相关文章

相似问题

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