无法使用Microsoft OAuth v2登录Microsoft个人帐户

时间:2016-08-11 10:54:05

标签: asp.net oauth-2.0 asp.net-core asp.net-identity asp.net-identity-3

我正在尝试将Microsoft帐户登录集成到我的ASP.NET Core应用程序中。我已在Microsoft应用程序注册门户中使用给定的重定向URI设置了Microsoft应用程序。

enter image description here

以下是Startup.cs文件的片段。

P16653,233060
P16659,345940
P16633,21069

当我运行应用程序并通过Microsoft登录时,我会被重定向到Microsoft登录页面。

它具有以下查询参数(删除了id)

// Add external authentication middleware below. To configure them please see http://go.microsoft.com/fwlink/?LinkID=532715
app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions()
{
    // I can't post my secrets here
    ClientId = "my_client_id",
    ClientSecret = "my_client_secret"
});

当我使用我的微软个人帐户登录时,我被重定向到错误页面。

enter image description here

网址为client_id:my_client_id scope:https://graph.microsoft.com/user.read response_type:code redirect_uri:https://localhost:44328/signin-microsoft state:the_state

我确认微软应用中的重定向网址与传递给Microsoft登录页面的重定向网址完全相同,所以我不知道是什么问题。

另一个奇怪的事情是,如果我使用工作或学校帐户登录,我可以正常进行并将其重定向到回调页面。

有人可以帮我这个吗?谢谢。

2 个答案:

答案 0 :(得分:2)

  1. 仔细检查您是否在项目中使用了最新版本的身份验证中间件(由于MS OAuth的更改,几周之前几乎没有变化 - 现在正在使用v2)。

  2. 仔细检查您是否在新的v2端点下创建了应用 - 请在此处阅读更多内容:How to register an app with the v2.0 endpoint

  3. 仔细检查您是否在Microsoft网站上为您的应用创建了密码。

  4. 检查' Advenced'中的Live SDK support选项部分 - 这应该启用(至少在我的情况下,但看起来这对你的帮助不大)。


  5. 在这里您可以找到更多信息:


    更新

    好的,我现在看到 - 你有两件事:

    • 缺少https(ssl),请参阅this post
    • 不同的端口号 - 这意味着它是不同的网址,这就是您遇到问题的原因 - 您使用的网址不同于在您的应用中注册的网址:

    http://localhost:54554/signin-microsoft - 在app中注册

    https://localhost:44328/signin-microsoft - 形成您的错误消息

答案 1 :(得分:1)

我有同样的问题。 我使用Microsoft Oauth 2.0来解决这个问题。您可以在https://azure.microsoft.com/en-us/documentation/articles/active-directory-appmodel-v2-overview/

找到MVC .net示例