azure - Azure OAuth2 代码流,组声明不在访问令牌中,而是在 id 令牌中
问题描述
我添加了对访问和 id 令牌的组声明。 图片:将声明添加到门户上的两个令牌中
我还确认它们是在清单和 groupMembershipClaims = SecurityGroup 中定义的:
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
"idToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": []
}
],
"accessToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": []
}
],
"saml2Token": []
},
当我获取令牌时。组声明在 id 令牌中,但不在访问令牌中。这是一个添加错误吗?我花了几个小时在谷歌上搜索和尝试。到目前为止,没有什么对我有用。
访问令牌
"oid": "ab7160f43-3595-4b82-abad-3a750ds95b039",
"platf": "3",
"puid": "100322000B4FFA971",
"scp": "openid profile email",
"sub": "Dd9iRENxMc6sFSOLpqvW-dfLQGgDDUiBvuk4M9PsVus8",
"tid": "2ed2c5sdf-19e7-4eb3-bfb7-eb26560fb1cc",
"unique_name": "xxxxxxxxxxx",
"uti": "D9cxwcvwRUCqmuLTbdd4IOAA",
"ver": "1.0",
"wids": [
"62e90394-69f5-4237-9190-012a177145310",
"9b895d92-2cd3-44c7-9d02-a6ac2d5eag2c3",
"c4e39bd9-1100-46d3-8c65-fb16d0da0071f"
],
"xms_st": {
"sub": "KH969M9F0-jgY2_dA89JzIkvDnt-OsBqltYKxnZv1qc"
},
"xms_tcdt": 1587429781
}.[Signature]
标识令牌
"iat": 1590181245t,
"nbf": 15901821456,
"exp": 15901855353,
"groups": [
"636c4e93-0a20-419a-9294-df537346bcda3",
"837c721c-83e6-4e20-8a35-2545d53043b28",
"95d05d16-f75a-415a-9c22-846b361777bcd",
"e1c42670-0726-4e5d-a9bd-8be2cc8776c55",
"d324302a-470c-4236-b818-c7706f840dc3",
"ba6f4d61-3927-452e-b2fe-90a5486033537"
],
"idp": "xxxxxx",
"sub": "KH969M9dF0-jgY2_dA89JzIkvDnH-OsBqltYKrxnZv1qc",
"tid": "2ed2tc5df-19e7-4e2b3-bfsb7-eb26a560fb1cc",
"uti": "D9cxwcvwRUCqmruLTb4IOAA",
"ver": "2.0",
"wids": [
解决方案
当您说您想要访问令牌中的组时,这只适用于该应用程序的访问令牌。您显示的访问令牌可能不适用于您的应用程序,而是另一个 API,它没有定义它需要令牌中的组。
如果您需要前端应用程序中的组信息,请从 id 令牌中获取它们。如果您在后端需要它们,您需要为您的 API 获取一个令牌,并定义您希望该 API 的访问令牌中的组。在获取令牌时,您可以使用资源/范围参数定义令牌用于的 API。如果您使用 v1 端点,则将客户端 ID 或应用 ID URI 定义为资源。如果您使用的是 v2 端点,则使用 API 应用注册的公开 API 选项卡中定义的范围。
推荐阅读
- python - 以矢量图的形式绘制一组向量
- python - 异常值:NOT NULL 约束失败:send_appdata.product_id_id
- java - 在java正则表达式中如何捕获正斜杠后跟.(点)
- java - 为什么具有可完成未来的代码比并行流慢?
- jpa - FROM 子句中未定义标识变量“名称”
- java - 在 JavaFX 的 FXML 中,如何声明自定义事件的处理程序?
- kubernetes - 如何使用标签选项删除多个命名空间
- android - Android 应用在 Firebase UI 上崩溃 Facebook 登录
- angular - Angular Material点击下个月或上个月不起作用
- javascript - Vuejs - 加载 API 时无法读取未定义的属性“位置”