【发布时间】:2023-03-31 19:42:01
【问题描述】:
我在 AAD 上遇到了一些奇怪的行为。在用户成功登录后,我们的 API 调用中的某些用户会收到未经授权的请求。事实证明,JWT 中的声明丢失了。一些用户正在获得“组”声明(他所属的所有 groupId 的数组),而有些用户正在获得“hasgroups”声明(如果用户有组,则为布尔值,没有 ID)。由于我们的 API 应用正在检查此“组”声明以获得授权,因此没有此“组”声明的用户会收到 403。
尽管如此,在应用注册的清单中,我将“groupMembershipClaims”从“null”设置为“All”或“SecurityGroup”,这应该可以解决问题。还要将“oauth2AllowImplicitFlow”设置为 true,因为我们正在使用使用 OAuth2 的 Angular 应用程序。接下来我比较了几乎所有的用户设置,除了一些额外的组之外,用户是相同的。受影响的用户没有很多组,有些甚至最多有 5 个组。
我是否忽略了某些内容或导致声明差异的原因?我该如何解决这个问题,以便所有用户都获得“群组”声明?
【问题讨论】:
标签: oauth-2.0 jwt azure-active-directory azure-ad-b2b