php – 与O365的OAuth集成失败,错误AADSTS65005

前端之家收集整理的这篇文章主要介绍了php – 与O365的OAuth集成失败,错误AADSTS65005前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个网站(建立在 PHP框架上),我们为教师/学生提供在线教育工具.我们已经与google.com进行了OAuth集成,用户可以使用他们的Google帐户“注册”并“登录”我们的网站(可以是个人Gmail帐户,也可以是Google Apps域的成员).

我们正在尝试与O365进行类似的集成,我们的网站可以向O365询问用户的电子邮件和姓/名,以便我们可以在我们的网站上为他们创建帐户,一旦创建帐户,就将其登录.我们创建了Azure中的应用程序列表 – > Active Directory,并生成了客户端ID和密码,并将它们插入到PHP代码中. OAuth工作流程described here一直工作到我尝试使用POST请求到https://login.windows.net/common/oauth2/token请求访问令牌.它重定向回我的redirect_uri但不是给我授权代码,它在URL中给我这些参数:

[error] => access_denied
[error_description] => AADSTS65005: The client application has requested access to resource 'https://outlook.office365.com/'. This request has Failed because the client has not specified this resource in its requiredResourceAccess list.
Trace ID: xxxxxx
Correlation ID: xxxxxx
Timestamp: 2014-09-29 06:28:25Z
[state] => xxxxxx

我只需要O365给我用户的电子邮件和f / l名称.当然有一个快速修复,我错过了?

默认情况下,已注册的应用程序配置为请求“读取用户配置文件”,一旦得到用户同意,允许应用获取用户令牌(如果使用OpenID Connect则为ID令牌)并读取已登录用户配置文件(包括调用 Azure AD Graph API时,他们的邮件地址或地址.Active AD保护的应用程序当前必须预先配置他们需要的权限范围(作为应用程序注册体验的一部分,在“其他应用程序的权限”部分下).
在这里,您似乎已将Outlook.com指定为您希望代码和访问令牌的资源,但您的应用未配置为允许访问O365 Outlook.com/Exchange Online.

请尝试将您的请求中的资源设置为Azure AD – https://graph.windows.net/.这应该适合您.然后,您可以交换访问令牌的代码调用Azure AD Graph API.

希望这可以帮助

猜你在找的PHP相关文章