我试图在IdentityServer 4中使用外部登录提供程序。我按照快速入门,一切都工作正常,现在我试图添加微软登录。
我在IS 4的Startup中添加了以下代码:
services.AddAuthentication()
.AddMicrosoftAccount(o =>
{
o.SignInScheme = IdentityServer4.IdentityServerConstants.ExternalCookieAuthenticationScheme;
o.ClientId = "yadayada";
o.ClientSecret = "yoyoyoyo";
});
在Azure Portal中,我定义了范围:
- 开放的
- 剖面
输入Microsoft用户名/密码后,我收到此错误:
**异常:**invalid_request;说明=请求对于应用程序的“userAudience”配置无效。为了使用/common/ endpoint,应用程序不能配置为“Consumer”作为用户受众。userAudience应配置为“All”以使用/common/ endpoint。
**例外情况:处理远程登录时遇到错误。**Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler.HandleRequestAsync()IdentityServer4.Hosting.FederatedSignOut.AuthenticationRequestHandlerWrapper.HandleRequestAsync()Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext上下文)IdentityServer4.Hosting.BaseUrlMiddleware.Invoke(HttpContext上下文)Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文)
***编辑:***这是Asp.NET Core中的一个bug。跟踪这里:https://github.com/dotnet/AspNetCore.Docs/issues/19795
2条答案
按热度按时间yqkkidmi1#
我得到了同样的错误。我可以通过重新创建 * 应用注册 * 并选择 * 支持的帐户类型 * 来修复它:
uqcuzwp82#
您可以简单地转到门户Azure面板,打开Manifest部分,并将
signInAudience
的值从PersonalMicrosoftAccount
更改为AzureADandPersonalMicrosoftAccount
。如果不存在,则同时创建key和value。