我正在使用microsoft Grap API让用户登录我的web应用程序并获取他们的基本配置文件。我遵循了微软概述中的每一个步骤。
对于任何实时电子邮件(尝试outlook.fr和hotmail.com),我在请求访问令牌时收到了这个错误:
AADSTS65001: No permission to access user information is configured for 'MyAppId' application, or it is expired or revoked.
我有什么东西不见了吗?我在我的Azur Portal应用程序上只配置了一个权限,在microsoft graph api委派的权限下:"登录并读取用户配置文件"。没有其他应用程序授权。
当我尝试使用office365帐户时,一切都很好。我甚至可以调用https://graph.microsoft.com/v1.0/me
并得到结果。
我已经检查了我的redirect_uri,它们在授权和访问令牌请求上都匹配。我已经打开了"应用程序是多租户"选项,并修改了清单文件,除此之外,所有内容都是默认的。
微软图形api能处理实时登录我的网络应用程序吗?如果是的话,有人能帮我理解我错在哪里吗?
以下是我的授权链接,适用于任何帐户:
https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=MyClientId&redirect_uri=MyUri
这是我的访问令牌请求链接:
https://login.microsoftonline.com/common/oauth2/token
POST data : grant_type=authorization_code&code=MyCode&client_id=MyClientId&client_secret=MySecret&resource=https%3A%2F%2Fgraph.microsoft.com%2F&redirect_uri=MyUri
为了能够在Azure Active Directory帐户之外使用Live Id/Microsoft帐户,请使用新的聚合授权流,如中所述https://graph.microsoft.io/docs/authorization/converged_auth.
您需要使用https://apps.dev.microsoft.com并且,当从中请求令牌或代码时,它将能够使用范围查询参数动态请求权限,而不是静态地声明应用程序的委派权限https://login.microsoftonline.com/common/oauth2/v2.0.