- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 Node.js Passport 库通过 OIDC 策略以及使用客户端 ID 和 key 的 Azure 注册应用程序进行身份验证。
http://login.microsoftonline.com/{org id}/v2.0/.well-known/openid-configuration
我在获取登录者的用户个人资料时没有遇到任何问题,但在尝试获取组时却遇到了困难。在我的应用程序中,我需要根据用户的事件目录组对用户进行授权。我正在取回这段 json:
"_claim_names\":{\"groups\":\"src1\"},\"_claim_sources\":{\"src1\":{\"endpoint\":\"https://graph.windows.net/{org guid}/users/{user guid}/getMemberObjects\"}}
我不确定我需要做什么来使用它来获取组。我尝试生成一个不记名 token ,将其传递到 header 中,然后获取组,但它说我未经授权使用 Postman。我需要应用程序中的某些权限吗?另外,当我尝试使用 graph.microsoft.com 时,为什么它使用 graph.windows.net ?
用户登录后是否有更简单的方法来执行此操作?
最佳答案
当用户是多个群组的成员时,超额指示器声明
您作为相关共享 json 的一部分返回的声明是超额指示器声明。
"_claim_names\":{\"groups\":\"src1\"},\"_claim_sources\":{\"src1\":{\"endpoint\":\"https://graph.windows.net/{org guid}/users/{user guid}/getMemberObjects\"}}
这意味着用户是许多组的成员,您需要单独查询该信息,而不是将所有组的信息作为 token 的一部分(这会使 token 太大)。
在这里阅读更多相关信息:Access Tokens Reference
如何获取群组信息?
您的应用程序需要单独调用 Microsoft Graph API
以获取用户的组信息。
相关 Microsoft Graph API
您的应用程序所需的权限
上面的每个 API 链接都提到了文档中所需的委托(delegate)或应用程序权限。
您需要更新 Azure AD 中的应用注册以获取相关权限(如果所需权限需要管理员同意,还需要获得管理员同意)
调用 Microsoft Graph API 的 token
您提到您已尝试生成不记名 token ,并将其传递到 header 中,但出现未经授权的错误。
完成应用程序的权限更改后,请从应用程序获取专门用于 Microsoft Graph API 的 token 。用于访问应用程序的不记名 token 可能无法直接与 Microsoft Graph API 配合使用。
另请确保您获得管理员同意,以防任何权限需要管理员同意。如果是单租户应用程序,则应由管理员直接从 azure 门户“授予权限”,如果是 Multi-Tenancy 应用程序,您可以使用 Admin consent endpoint 。
代码示例:这是一个快速tutorial for calling Microsoft Graph using Node.js ..您也可能会找到其他好的。
Azure AD Graph API (graph.windows.net
) 与 Microsoft Graph API (graph.microsoft.com
)
您对端点有一个有效的问题。“另外,当我尝试使用 graph.microsoft.com 时,为什么它使用 graph.windows.net?”
一般建议使用较新的 Microsoft Graph API,除非 Microsoft Graph 无法提供您正在查找的功能/信息,并且只有 Azure AD Graph API 可以提供帮助。在这里阅读有关推荐和比较的更多信息:Microsoft Graph or Azure AD Graph
由于有关组的信息已在 Microsoft Graph 的 v1 端点(非测试版)中提供,因此您应该使用 Microsoft Graph API。
关于azure - 获取 Azure AD 用户组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55463527/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!