如何使用相同的OAuth2令牌访问Azure Graph和Microsoft Graph?

金·拉斯穆森

我想使用相同的OAuth2令牌(在iOS的Swift 3应用程序中)访问Azure AD Graph APIMicrosoft Graph API,这可能吗?

我想访问以下API:

我已经在Azure门户中创建了本应用程序,并为Microsoft GraphMicrosoft.Azure.ActiveDirectory添加了权限(具有上述权限范围)。

我可以通过在身份验证(登录时)时更改资源属性来访问这两个API -Azure配置似乎正确。但是,当使用第一个资源进行身份验证时,尝试使用相同的令牌来访问其他API时,出现“未经授权”错误。我试图将两个URL都添加到资源属性中,但是随后出现错误(“ AADSTS50001:在租户中未找到应用程序名称。”)。我在做错什么或我在想什么...?

如果不可能-为什么可以在Azure门户中添加多个API?

访问这两个API的原因:Microsoft Graph不能为我提供所有属性(但支持增量更改),而Azure AD Graph可以为我提供完整的配置文件-两者均未经管理员同意(使用委派权限)

肖恩·塔布里兹(Shawn Tabrizi)

您不能使用相同的访问令牌从字面上调用这两个API。由于访问令牌具有特定的受众,并且当受众声明与自己的应用ID URI不匹配时,其中一个API会拒绝令牌。

看来您真正想要完成的是使用一次登录体验获得两个令牌,您可以执行此操作。

使用授权码授予流程,您可以使用户登录而无需指定资源。将向用户显示AAD和MS Graph API权限的同意,并且登录完成后,您的应用程序将获得身份验证代码。

那时,您的应用程序可以使用相同的授权代码两次调用令牌端点,以获取两个端点的两个访问令牌。从那里,您可以管理两个令牌,并同时维护对两个API的访问。

我在这里的一个Python示例中执行此操作,除了两个端点是AAD Graph API和Azure资源管理器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

访问Microsoft Graph API的方法

如何正确注册和访问OAuth2的Office 365 Graph API(使用来自Ruby的omniauth)?

使用Microsoft.Graph日历事件和灵敏度

Microsoft Graph OAuth2撤销/使刷新令牌node.js无效

Microsoft Graph OAuth问题

Microsoft Graph API:省略用户访问令牌

EWS和Microsoft Graph

使用具有相同令牌的Microsoft Office365(Outlook)API和Graph API

Microsoft Graph-API和Azure移动应用

Azure AD Graph与Microsoft Graph App授权令牌

Azure AD / Microsoft Graph访问级别升级和降级

Microsoft Graph API的访问令牌立即过期

Microsoft Graph无限/长期访问令牌

使用C#和Microsoft Graph SDK从日历获取事件

Microsoft Graph和无用户访问

Microsoft Graph-获取访问令牌

如何使用Microsoft Graph API创建用户(来自Graph Explorer和Java应用程序)

访问令牌验证失败Microsoft Graph API

使用Microsoft Identity获取Graph和Azure DevOps API的唯一令牌

如何验证使用Microsoft Graph API生成的oauth令牌

在Microsoft Graph中使用Top和Skip来实现分页

Microsoft Graph API - 无法刷新访问令牌

如何在 OAuth 2 请求中同时使用 Microsoft Graph 和 Office 365 范围?

使用 python 和 html 的 Microsoft Graph API 分页接口

如何使用 ajax 调用获取 Microsoft Graph API 访问令牌

无法获取 Microsoft Graph OAuth 访问令牌

TheNetworg oAuth2 到 Microsoft Graph 报告令牌已过期,但未过期

Azure AD 仅生成用于 Microsoft Graph 的无效访问令牌

从 Microsoft Graph for Azure 获取访问令牌