amazon-web-services - AWS Loadbalancer 和 Azure OIDC:如何从原始 ID-Token 中检索角色
问题描述
在 AWS ELB 使用 Azure AD over OIDC 完成身份验证后,如何从用户那里检索角色?
所以我的设置目前如下:用户和角色在 Azure AD 中配置。该网页托管在 AWS 中,位于 Elastic Load Balancer 后面,其安全规则使用 OIDC/OAuth2 授权代码流针对前面提到的 Azure AD 对用户进行身份验证。根据https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-authenticate-users.html#user-claims-encoding,AWS ELB 将身份验证信息和用户声明放在标头 x-amzn -oidc-accesstoken、x-amzn-oidc-identity 和 x-amzn-oidc-data。但是,我没有找到我在 Azure AD 中配置的角色以及 ID 令牌中存在的角色。
在 Azure AD 颁发的 ID 令牌中,它们以下列方式存在:
{
"aud": "12345...",
"iss": "https://login.microsoftonline.com/XXXXX/v2.0",
"iat": 1621417432,
...
"email": "fu.bar@mail.com",
"roles": [
"role1", "role2"
]
...
}
我希望它们包含在其中的 x-amzn-oidc-data 令牌如下所示:
{
"sub": "abc123",
"name": "Fu Bar",
"family_name": "Bar",
"given_name": "Fu",
"picture": "https://graph.microsoft.com/v1.0/me/photo/$value",
"email": "fu.bar@mail.com",
"exp": 1621322885,
"iss": "https://login.microsoftonline.com/XXXXXX/v2.0"
}
有没有办法获取原始 ID 令牌或以其他方式提取角色?还是我需要手动连接到 Microsoft graph 并再次从那里检索角色?
解决方案
推荐阅读
- python - 从 csv 到 json 从两个分类变量(列)中选择类别作为 json 文件的键
- list - Flutter: Reorderable AND Animated ListView - any idea?
- ruby - 新手问题 - 为什么这个循环不起作用?
- node.js - 如何将 axios 响应保存到变量,以便在 axios 外部使用?
- mysql - 尝试在 JBOSS 上安装 EJBCA 时出现问题 - 为什么 Mysql 数据库(“ejbca”)为空
- reactjs - this.setState 到子对象
- amazon-web-services - boto3:无法更新事件源映射,因为它正在使用中?
- python - 在 Python 中迭代浮点列表
- c# - 如何防止 string.Replace() 方法替换相似但不需要的数据?
- reactjs - 根据 Firebase 状态导航到另一个屏幕