我花了很多时间试图获得这种设置,似乎永远不会取得成功。我还没有发现任何似乎将最新配置放在一起并起作用的例子。
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错误。
答案 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帐户和帐户启用登录用户。
在进行上述代码示例工作时遇到任何问题,请随时告诉我。