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应用程序主机,您的场景是什么?