我试图在.NET Core项目的Startup.cs类中设置一个OpenIdConnect,但始终出现以下错误:
消息包含错误:“ invalid_scope”,错误描述:“ error_description为空”,错误_uri:“ error_uri为空”。
我猜这个错误的原因是因为在下面的代码中,我清除了 o.Scope 列表,因为它似乎包含2个默认范围:
如果我不清除默认范围,那么我正在访问的客户端将无法识别针对有效应用程序的请求,因此我的请求将在他们这边失败。在这种情况下,我确实重新添加了范围:“ openid ”,这使我可以向客户端发出成功的请求,但是随后重定向到我的 RedirectUri 出现上述错误。
“ invalid_scope”错误是否来自我的客户端?还是这发生在使用.NET Core的中间件中?
我是否应该要求客户端在其旁边更新范围以包括“配置文件”,所以我不必清除默认范围?
services.AddAuthentication().AddOpenIdConnect(socialProvider.ProviderName, o =>
{
o.ClientId = "xx"
o.ClientSecret = "xx"
o.Authority = "xx"
o.CallbackPath = "xx"
// There appear to be 2 scopes added by default here that cause the
// integration for o to not be recognised as an application when we get to o' side.
o.Scope.Clear();
o.Scope.Add("openid");
o.GetClaimsFromUserInfoEndpoint = true;
o.SaveTokens = true;
o.RequireHttpsMetadata = false;
});
答案 0 :(得分:0)
AddOpenIdConnect 会自动创建 OpenIdConnectOptions 对象,默认范围是 openid 和配置文件。所以你应该告诉你的身份支持这两个范围,或者清除我们的默认范围并添加任何支持的客户端