2016-09-28 43 views
1

我们正在使用Microsoft在我们的网站上添加登录。我们的要求是支持Azure Active Directory中的个人Microsoft帐户和工作/学校帐户。带端点版本的Azure AD OAuth 2 2 - 工作帐户成功,个人帐户因“Microsoft帐户遇到技术问题”而失败。

我只允许发布2个网址,在这个岗位,所以我会用空格打破他们。

我们认真遵循微软的以下网址的文档:https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-protocols/

  • 我们的应用程序是注册在apps.dev.microsoft.com

  • 我们使用的端点是:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize

的https://login.microsoftonline.com/common/oauth2/v2.0/token

学校/工作帐户成功

当我们使用此协议启动OAuth 2登录时,我们将转到Microsoft的登录页面,网址如下:https://login.microsoftonline.com/common/oauth2/v2.0/authorize

输入与形式的一所学校/工作帐户的用户的电子邮件地址和密码“[email protected]”成功认证用户,我们收到一个访问令牌,并能够成功地查询Microsoft图API。

个人帐户失败

当我们发起一个OAuth 2登录并采取到https://login.microsoftonline.com/common/oauth2/v2.0/authorize但输入个人Microsoft帐户的电子邮件地址,我们立即重定向到Microsoft个人帐户登录页面,网址如下:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type = code & client_id = 00000000- 0000-0000-0000-000000000000 & redirect_uri = https%3A%2F%2Fsub.example.com%2Flogin%2Foffice365%2Fprocess &范围=的OpenID%20User.Read & response_mode =查询&状态= 0000000000qi7ua80000000000

其失败并重定向到与消息的错误页面:

“Microsoft帐户遇到的技术问题。请稍后再试“

错误页的URL是:

的https://login.live.com/err.srf LC = 1033#错误= INVALID_REQUEST & ERROR_DESCRIPTION = +将提供+ value + for + the + input + parameter +'redirect_uri'+ is + not + valid。+ + expected + value + is +'https://login.live。COM/oauth20_desktop.srf'+或+ A + URL +其中+比赛的+ + +重定向URI +注册+为+ +这个客户+应用程序。 &状态= 0000000000qi7ua80000000000

我们调试步骤

  • 尝试添加/移除若干组合和重定向网址,既没有子域的顺序,只是含有不含路径的域,等等( https://example.com,https://sub.example.com)

  • 试图将错误消息(https://login.live.com/oauth20_desktop.srf)中提及的URL添加到我们的允许重定向网址

  • 启用Chrome调试器和记录网络请求确认我们的导向网址匹配传递给微软登录参数,并与我们的应用程序注册什么

+0

你有没有想过呢?我有同样的问题。 –

回答

0

看起来就像你做的一切权利。在过去的几周内,apps.dev.microsoft.com门户偶尔无法将redirect_uri记录在Microsoft帐户数据存储中。看起来你正在碰到这个bug。

现在唯一的解决方法是尝试删除&在apps.dev.microsoft.com中重新添加redirect_uri,直到它实际上粘住为止。对于其他人而言,通过创建新的应用程序ID来开始新鲜事效果很好。

0

确实是一个错误。即使它看起来被改变,微软也不会存储您的redirect_uri

对我有用的是改变清单。您只需在清单中更改您的应用程序名称并保存。然后,Microsoft将正确存储整个清单,包括您的redirect_uri

这是一个烦人的bug,花费我很多时间。