你如何设置Microsoft OpenIdConnect?

时间:2017-05-01 19:59:47

标签: authentication configuration asp.net-core azure-active-directory openid-connect

我花了很多时间试图获得这种设置,似乎永远不会取得成功。我还没有发现任何似乎将最新配置放在一起并起作用的例子。

app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
    AuthenticationScheme = "Cookies",
    AutomaticAuthenticate = true
});

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions()
{
    AuthenticationScheme = "Microsoft Signin",
    SignInScheme = "Cookies",
    Authority = "https://login.microsoftonline.com/common/v2.0",
    ResponseType = "id_token",
    ClientId =    "XXXXXXXXXXXXXXXXX",
    ClientSecret = "XXXXXXXXXXXXX",
    SaveTokens = true
});

我设置了一个创建应用程序ID和密码的Microsoft应用程序。然后我将RedirectUrls设置为http://localhost:12343/signin-microsoft,这是我的应用程序的当前位置。当我尝试验证时,我收到此错误。

We're unable to complete your request
Microsoft account is experiencing technical problems. Please try again later.

并且URL地址中嵌入了另一个错误。

The provided value for the input parameter 'redirect_uri' is not valid. The 
expected value is 'https://login.live.com/oauth20_desktop.srf' or a URL which 
matches the redirect URI registered for this client application.

我尝试过每一种我能想到的变化,但似乎没有任何效果。我还尝试使用在线托管的代码来处理这些事情,以防服务器处理身份验证无法找到本地主机但仍然没有运气。

我现在已将Microsoft应用程序RedirectUrls更改为值

http://localhost:10223/signin-oidc

当我对其进行身份验证时,现在将我发送回此位置,但我收到500错误。

1 个答案:

答案 0 :(得分:0)

您可以使用Fiddler获取请求,比较redirect_uri的值和应用程序注册门户中的一个配置。

此外,您可以查看将Azure AD(v2.0端点)集成到ASP.NET Core Web应用程序中的this code sample。该代码示例使用ASP.Net Core OpenID Connect中间件,并使用来自多个Azure Active Directory租户的Microsoft帐户和帐户启用登录用户。

在进行上述代码示例工作时遇到任何问题,请随时告诉我。