我想使用相同的OAuth2令牌(在iOS的Swift 3应用程序中)访问Azure AD Graph API和Microsoft Graph API,这可能吗?
我想访问以下API:
我已经在Azure门户中创建了本机应用程序,并为Microsoft Graph和Microsoft.Azure.ActiveDirectory添加了权限(具有上述权限范围)。
我可以通过仅在身份验证(登录时)时更改资源属性来访问这两个API -Azure配置似乎正确。但是,当使用第一个资源进行身份验证时,尝试使用相同的令牌来访问其他API时,出现“未经授权”错误。我试图将两个URL都添加到资源属性中,但是随后出现错误(“ AADSTS50001:在租户中未找到应用程序名称。”)。我在做错什么或我在想什么...?
如果不可能-为什么可以在Azure门户中添加多个API?
访问这两个API的原因:Microsoft Graph不能为我提供所有属性(但支持增量更改),而Azure AD Graph可以为我提供完整的配置文件-两者均未经管理员同意(使用委派权限)
您不能使用相同的访问令牌从字面上调用这两个API。由于访问令牌具有特定的受众,并且当受众声明与自己的应用ID URI不匹配时,其中一个API会拒绝令牌。
看来您真正想要完成的是使用一次登录体验获得两个令牌,您可以执行此操作。
使用授权码授予流程,您可以使用户登录而无需指定资源。将向用户显示AAD和MS Graph API权限的同意,并且登录完成后,您的应用程序将获得身份验证代码。
那时,您的应用程序可以使用相同的授权代码两次调用令牌端点,以获取两个端点的两个访问令牌。从那里,您可以管理两个令牌,并同时维护对两个API的访问。
我在这里的一个Python示例中执行此操作,除了两个端点是AAD Graph API和Azure资源管理器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句