AAD 团体声称某些用户的 JWT 令牌缺失

2024-04-18

我在 AAD 上遇到一些奇怪的行为。用户成功登录后,我们的 API 调用中某些用户收到未经授权的消息。结果发现 JWT 中的声明丢失了。一些用户获得“groups”声明(他所属的所有 groupId 的数组),一些用户获得“hasgroups”声明(如果用户有组,则为布尔值,没有 Id)。由于我们的 API 应用程序正在检查此“组”声明以获取授权,因此没有此“组”声明的用户将收到 403。

尽管如此,在应用程序注册的清单中,我将“groupMembershipClaims”从“null”设置为“All”或“SecurityGroup”,这应该可以解决这两个问题。还将“oauth2AllowImplicitFlow”设置为 true,因为我们正在使用使用 OAuth2 的 Angular 应用程序。接下来,我比较了几乎所有用户设置,除了一些额外的组之外,用户是相同的。受影响的用户没有很多组,有些甚至最多有 5 个组。

我是否忽略了某些事情或是什么导致了索赔的这种差异?我该如何解决这个问题,以便所有用户都获得“组”声明?


从 MSFT 内部得到了这样的反馈:

在隐式流程中,oauth 将直接从 通过查询字符串参数进行初始/授权调用。 http 规范 限制查询字符串/url的长度,因此如果AAD检测到 生成的 URI 将超过此长度,它们会替换组 与 hasGroups 声明。

And this

这是使用隐式授权流程时设计的,无论 清单中的“groupMembershipClaims”设置。是为了避免去 超过浏览器的 URL 长度限制,因为令牌作为返回 URI 片段。因此,或多或少在 4 个用户的组成员身份之后, 您将在令牌中得到“hasgroups:true”。你能做的就是做一个 单独调用Graph API来查询用户组 会员资格。

因此需要对 Graph API 进行额外的往返才能获取用户组。希望这也对其他人有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AAD 团体声称某些用户的 JWT 令牌缺失 的相关文章

随机推荐

  • Node.js 快速文件服务器(通过 HTTP 的静态文件)

    是否有 Node js 即用工具 安装时使用npm 这将帮助我通过 HTTP 将文件夹内容公开为文件服务器 例如 如果我有 D Folder file zip D Folder file2 html D Folder folder file
  • 从随机像素进行图像插值

    我想问一个关于单通道图像插值的问题 选择单通道只是为了简单起见 否则我正在处理多通道图像 假设有一个纯黑色背景 像素强度为0 的单通道图像 其上有一些强度值非零的像素 我想应用插值算法 用来自相邻非零强度像素的插值填充图像的整个黑色区域 您
  • 有没有办法指定图像的最大高度或宽度?

    我希望图像的高度为 725 或宽度为 500 并保持其纵横比 当我的图像高度超过 725 且厚度小于 500 时 它们会被拉伸以适合 500 的宽度 做这个的最好方式是什么 以下是我现在正在做的事情
  • 反序列化 json 对象数组,其中包含 json 对象

    如何在 C 中反序列化 json 对象数组 这是我的 json id 255521115 user username userinfo id 158 online false 我有这个代码来获取用户名 JsonProperty user p
  • javascript - 按钮需要单击两次才能触发 onclick

    为什么我的按钮需要单击两次才能触发 onclick 事件 stackoverflow 上还有其他一些线程也存在同样的问题 但在我发现的所有线程中 原始发布者将事件处理程序放在函数内 我的代码不是这样的 Html ul li First ch
  • 在 JavaScript 中从具有任意基数的整数生成字符串

    在 JavaScript 中 您可以从数字生成字符串 如下所示 123 toString 36 gt 3f 如果你尝试做任意基础 123 toString 40 You get Uncaught RangeError toString ra
  • 如何使用 bootstrap-multiselect 动态隐藏/显示选项?

    我在用引导多选 http davidstutz github io bootstrap multiselect 为用户提供对两个按键菜单的良好控制 我的第一个菜单叫做groups和其他称为queues 队列中的每个选项都有一个 HTML5
  • Octave-'endfunction' 命令与 'endif' 匹配

    有人可以告诉我我的代码有什么问题吗 sinlaw 150 30 39 8 parse error near line 30 of file endfunction command matched by endif function phi
  • 仅当应用程序 100% 完成时,才能在仪器测试后正确清理/拆卸

    我有一堆端到端仪器测试 依赖于 Espresso 它们启动我们的启动器活动 然后在我们的应用程序中导航 最终创建多个活动 在 的最后each测试我们的 After带注释的拆卸方法执行一些清理工作 我们遇到的问题是 测试完成 成功或失败的断言
  • Xcode 不断展开项目导航器中的所有组

    从几天前开始 Xcode 不断扩展项目导航器中的所有组和子组 我反复折叠它们 这样我就可以专注于我正在做的事情 然后我回去 它们都再次展开 还有其他人经历过吗 我折叠一个组 移至 Xcode 中的另一个选项卡 然后返回 所有组都再次展开 这
  • Lambda 属性值选择器作为参数

    我需要修改一个方法 以便它有一个额外的参数 该参数将采用 lambda 表达式 该表达式将用于内部对象以返回给定属性的值 请原谅我可能错误地使用了术语 因为这是我第一次尝试 LINQ 表达式 我尝试寻找答案 但正如我所提到的 我的术语似乎不
  • 使用 paramiko 检查远程主机上是否存在路径

    帕拉米科的SFTP客户端 http www metasnark com paramiko docs paramiko SFTP class html显然没有exists方法 这是我当前的实现 def rexists sftp path os
  • JavaFX - 在 DirectoryChooser 中显示文件

    是否可以使 DirectoryChooser 显示文件 而不仅仅是目录 与此处描述的问题相同JFileChooser 选择目录但显示文件 https stackoverflow com questions 2883447 jfilechoo
  • 在reactjs中添加内联样式而不使用JSX

    我正在尝试使用reactjs向元素添加内联样式 我发现 var divStyle color white backgroundImage url imgUrl ReactDOM render div Hello World div moun
  • twitter bootstrap 下拉菜单在应该关闭时没有切换

    天哪 我一直在为这件事抓狂 4个小时的下拉菜单 我正在使用 Twitter Bootstrap 顶部的固定导航有一个下拉菜单 非常标准的东西 只是下拉菜单没有像平常那样关闭 仅当按下切换按钮本身时 它才会打开和关闭 而不是按下菜单中的项目或
  • 在 Outlook 2007 C# 中获取安全发件人列表

    我已经在 C NET 4 0 中创建了 Outlook 2007 加载项 我想读取 C 代码中的安全发件人列表 if oBoxItem is Outlook MailItem Outlook MailItem miEmail Outlook
  • 如何防止c#中对象的实例化

    我需要的是检查传递给构造函数的参数 并防止特定对象的实例化 以防它们被视为无效 我发现可以抛出异常 因此对象引用将按预期以 null 结束 例如 仅当传递给构造函数的整数为非负数时 才会实例化此类 class MyClass public
  • Bootstrap 3 并排容器

    我正在尝试制作一个网页 其中内容的左半部分尊重引导程序 container最大宽度大小 而我的右侧可以一直到页面的末尾 作为 container fluid会工作 像这样的图片 到目前为止 我已经尝试了几种方法 目前我正在使用以下代码 di
  • 如何从 for 循环构建和填充 pandas 数据框? [复制]

    这个问题在这里已经有答案了 这是我正在运行的代码的一个简单示例 我希望将结果放入 pandas 数据帧中 除非有更好的选择 for p in game players passing print p p team p passing att
  • AAD 团体声称某些用户的 JWT 令牌缺失

    我在 AAD 上遇到一些奇怪的行为 用户成功登录后 我们的 API 调用中某些用户收到未经授权的消息 结果发现 JWT 中的声明丢失了 一些用户获得 groups 声明 他所属的所有 groupId 的数组 一些用户获得 hasgroups