You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core Web App使用OpenIDConnect认证时出现invalid_scope错误

.NET 6 OpenIDConnect 报 invalid_scope 错误排查

问题详情

在.NET 6 Core Web App中配置OpenIDConnect认证时,使用Okta测试正常,但切换到客户指定的第三方认证服务时出现以下异常:

OpenIdConnectProtocolException: Message contains error: 'invalid_scope', error_description: 'The requested scope is invalid, unknown, malformed, or exceeds that which the client is permitted to request.', error_uri: 'error_uri is null'.

配置代码如下:

.AddOpenIdConnect(o =>
{
    o.SignInScheme = "Cookies";
    o.ClientId = config.GetSection("SsoConfig:ClientId").Value;
    o.ClientSecret = config.GetSection("SsoConfig:ClientSecret").Value;
    o.Authority = config.GetSection("SsoConfig:Authority").Value;
    o.SignedOutRedirectUri = config.GetSection("SsoConfig:SignedOutRedirectUri").Value;
    o.ResponseType = "code";
    o.Scope.Add("openid");
    o.Scope.Add("profile")
}

错误原因排查及解决方案

  • 第三方认证服务不支持profile scope
    不同OIDC提供商对标准scope的支持存在差异,Okta默认支持profile,但部分第三方服务可能仅支持核心的openid scope,或需额外配置才能启用profile权限。建议先移除o.Scope.Add("profile"),仅保留openid进行测试。

  • 客户端未被授予对应scope权限
    即使代码中配置了profile scope,若客户的认证服务中,该ClientId对应的应用未被授予访问profile的权限,也会触发此错误。需联系客户确认客户端应用的权限配置,确保已启用所需scope。

  • 认证服务不支持该scope(可自行验证)
    访问第三方认证服务的OIDC元数据端点({Authority}/.well-known/openid-configuration),查看返回结果中的scopes_supported字段,确认是否包含profile。若该字段不存在profile,说明服务本身不支持此scope,必须从配置中移除。

  • 代码语法细节问题
    提供的配置代码中,o.Scope.Add("profile")末尾缺少分号,这会导致编译错误。虽然可能是粘贴时的笔误,但需确认实际代码是否存在此类语法问题,避免因此引发异常。

  • Scope格式或拼写问题
    部分认证服务对scope的大小写、格式要求严格,检查是否存在拼写错误或多余空格。也可尝试将scope统一赋值,替换两次Add为o.Scope = "openid profile",验证是否解决问题。

内容的提问来源于stack exchange,提问作者Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:10:40