Authentication 如何设置Microsoft OpenIdConnect?

Authentication 如何设置Microsoft OpenIdConnect?,authentication,configuration,asp.net-core,azure-active-directory,openid-connect,Authentication,Configuration,Asp.net Core,Azure Active Directory,Openid Connect,我花了很多时间试图得到这个设置,似乎从来没有进展到成功的点。我还没有发现任何例子,似乎把最新的配置放在一起,并工作 app.UseCookieAuthentication(new CookieAuthenticationOptions() { AuthenticationScheme = "Cookies", AutomaticAuthenticate = true }); app.UseOpenIdConnectAuthentication(new OpenIdConnect

我花了很多时间试图得到这个设置,似乎从来没有进展到成功的点。我还没有发现任何例子,似乎把最新的配置放在一起,并工作

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
});
我安装了一个Microsoft应用程序,创建了应用程序id和密码。然后我将重定向URL设置为应用程序的当前位置。当我尝试进行身份验证时,我收到此错误

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应用程序重定向URL的值更改为


当我进行身份验证时,它现在将我发送回这个位置,但我得到一个500错误。

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

此外,您还可以研究将Azure AD(v2.0端点)集成到ASP.NET核心web应用程序中的方法。该代码示例使用ASP.Net核心OpenID连接中间件,并使用Microsoft帐户和来自多个Azure Active Directory租户的帐户启用登录用户


在制作上述代码示例的过程中,如果有任何问题,请随时告诉我。

问题是我在使用以下示例

app.UseOpenIdConnectAuthentication
有一些扩展设置了一些选项,这些选项可以整理出大部分缺失的部分

var googleOptions = new GoogleOptions() { ... }
var facebookOptions = new FacebookOptions() { ... }
var twitterOptions = new TwitterOptions() { ... }
var options = new MicrosoftAccountOptions() { ... }

app.UseGoogleAuthentication(googleOptions);
app.UseFacebookAuthentication(facebookOptions);
app.UseTwitterAuthentication(twitterOptions);
app.UseMicrosoftAccountAuthentication(options);
下面是没有包含秘密检索代码的Micrsoft实现的样子

var options = new MicrosoftAccountOptions() 
{
    ClientId = "xxxxxx", 
    ClientSecret = "xxxxxxx",
};
app.UseMicrosoftAccountAuthentication(options);
需要nuget OpenIdConnect扩展包:

Micrsoft.AspNetCore.Authentication.OpenIdConnect

Micrsoft.AspNetCore.Authentication.Facebook

Micrsoft.AspNetCore.Authentication.Google

Micrsoft.AspNetCore.Authentication.MicrosoftAccount


Micrsoft.AspNetCore.Authentication.Twitter

你看过这个吗。。。他们似乎有循序渐进的教程…这和OpenIdConnect不同吗?似乎只是身份验证。当用户使用中间件登录时,如果用户授予权限,您应该能够遍历并查看MSFT已通过的声明。@Muqeet Khan。我将如何进行索赔的迭代?您必须为您的站点启用ssl链接中的项目没有使用aspnetcore,这正是我试图设置的。Microsoft.AspNetCore.Authentication。OpenIdConnect@jwize,您是否检查了该项目,它是一个.net核心项目,并且使用了Microsoft.AspNetCore.Authentication.OpenIdConnect v1.0.0您是否查看了发布的链接?我再次查看了该项目,并搜索了AspNetCore,但没有找到任何结果,因此看起来很奇怪。请检查,这是IIS上的asp.net core应用程序主机,您的场景是什么?