Gravitee管理器可以按照描述的这里配置密钥披风身份验证。
他们在他们的文档中说,角色映射可以在他们的gravitee.yml配置中解决:
security:
providers:
- type: oidc
roleMapping:
- condition: "{#jsonPath(#profile, '$.job_id') != 'API_MANAGER'}"
roles:
- "PORTAL:PARTNER"
- "MANAGEMENT:API_CONSUMER"如何正确映射#profile jonPath?在java例外情况下,我尝试了下一个SpEl配置:
"{#jsonPath(#profile, 'gravitee-admin' in '$.realm_access.roles')}"发布于 2021-01-31 18:04:14
TL;DR
配置文件只能被断言为SpEl字符串,确保您在密钥披风控制台上启用组映射器:(客户范围->创建“组”\Mappers>添加内置->组添加选定,客户端->我的机密-客户->客户范围->添加“组”)。
使用此配置,可以使用regex完成匹配组:
{(#jsonPath(#profile, '$.groups') matches 'gravitee-admin' )}注意uid选项:“在每次用户身份验证期间都会计算组和角色映射。平台管理员仍然能够覆盖映射,但这些映射将在下一次用户身份验证后刷新。”我不太明白在yaml上配置它的位置。
在3.5.2版本中,用户角色映射为“槽”:
userRoles = computeUserRolesFromProfile(email, socialProvider.getRoleMappings(), userInfo); // 1)函数由电子邮件(如果在客户端作用域上可用)、SpEl函数和/protocol/openid返回的json (连接/userinfo端点)调用:
private Set computeUserRolesFromProfile(String userId, List mappings, String userInfo) {#profile (userinfo)是唯一的上下文变量,是通过SpEl操作的
https://serverfault.com/questions/1051843
复制相似问题