我在 AAD 上遇到一些奇怪的行为。用户成功登录后,我们的 API 调用中某些用户会收到未经授权的消息。结果发现 JWT 中的声明丢失了。一些用户获得“groups”声明(他所属的所有 groupId 的数组),一些用户获得“hasgroups”声明(如果用户有组,则为布尔值,没有 ID)。由于我们的 API 应用程序正在检查此“组”声明以获取授权,因此没有此“组”声明的用户将收到 403。\xe2\x80\xac
\n\n\xe2\x80\xaa尽管如此,在应用程序注册的清单中,我将 \xe2\x80\x9cgroupMembershipClaims\xe2\x80\x9d 从 \xe2\x80\x9cnull\xe2\x80\x9d 设置为“All”或“SecurityGroup” ,这应该可以达到目的。还要将“oauth2AllowImplicitFlow”设置为 true,因为我们正在使用使用 OAuth2 的 Angular 应用程序。接下来,我比较了几乎所有用户设置,除了一些额外的组之外,用户是相同的。\xe2\x80\xac 受影响的用户没有很多组,有些甚至有大约 5 个组最大限度。
\n\n我是否忽略了某些事情或导致索赔差异的原因?我该如何解决这个问题,以便所有用户都获得“组”声明?
\n