带有aspnet核心MVC OIDC身份验证的IdentityServer4 - api范围限制?

球童

我有一个 MVC 应用程序,它使用 Microsoft.AspNetCore.Authentication.OpenIdConnect 中间件来对抗 IdS4(核心 1.1)。MVC 使用身份验证后获得的访问令牌调用后端 Web API。我正在使用“代码 id_token”响应。我已经使用范围对 API 进行了分段,但我有相当多的 API,即 15。当我构建 OIDCoptions 时,我添加了客户端需要的范围:

oidOptions.Scope.Add("usersRead");           // Api scope
oidOptions.Scope.Add("usersWrite");          // Api scope

这工作得很好。但是,我又添加了两个范围,现在当 MVC 对 IdS 进行 OIDC 质询时,即在用户获得登录表单之前,IdS 报告以下内容

错误的请求

我可以从我的 MVC 应用程序的列表中删除任意两个范围,然后它会重新开始工作。这让我觉得可以请求的范围数量有一些限制,或者 URL 长度有问题?我查看了 OIDC 中间件和 IdS 的源代码,但找不到任何会限制客户端可能请求的 API 范围数量的内容。

有任何想法吗?

球童

感谢您的评论。在 Azure Web 应用程序中设置日志流后,问题立即突出显示。实际上,对构成令牌请求的工件有字符串长度限制,特别是对于范围字符串 300 个字符。我们缩短了范围名称,现在一切正常。

参考参考:https : //github.com/IdentityServer/IdentityServer4/blob/aspnetcore1/src/IdentityServer4/Configuration/DependencyInjection/Options/InputLengthRestrictions.cs

请注意,这是针对 dot net core v1.1 - v2.0 的类似限制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过ASP Core MVC,Web API和IdentityServer4的身份验证?

带有UI的LDAP / AD身份验证的IdentityServer4

使用IdentityServer4对API进行自定义JWT身份验证

一个项目中的 IdentityServer4 和 Web Api 无法通过身份验证

IdentityServer4替换Asp.net 4.5 MVC5 SimpleMembership进行身份验证

使用 MVC 客户端 4.7.1 和 IdentityServer4 进行身份验证

具有Windows身份验证和自定义声明的IdentityServer4

具有Windows / AD身份验证的IdentityServer4无法正常工作?

具有Google身份验证和邮递员的IdentityServer4

是否可以仅通过REST调用使identityserver4中的身份验证有效?

在 IdentityServer4 中,您可以在 client_credentials 身份验证中使用“*”作为请求的范围吗?

具有IdentityServer4,Asp.Net Core身份和不带实体框架的自定义提供程序的Blazor WebAssembly身份验证

用于 oidc 的 .net 核心身份服务器 4 身份验证处理程序

使用Angular SPA应用程序与IdentityServer4进行通信以进行身份验证/授权,以接收令牌,然后与Web API进行通信

具有ASP.NET Core身份的Web API的IdentityServer4基于角色的授权

对核心 API 的 Dotnet Core 3 MVC 身份验证

.Net Core自定义身份验证,使用带有Identity Server 4的API密钥

为使用IdentityServer 4进行身份验证的AspNetCore API构建集成测试

两个IdentityServer4之间的集成(aspnet身份)

带有节点的SendPulse API的身份验证凭据

带有SAML的REST API身份验证

带有Powershell的OVH API身份验证

带有ID令牌的REST API Firestore身份验证

带有身份验证的Laravel API路由

带有 Firebase 身份验证的 GCP Api 网关

带有静态密钥的简单 api 身份验证

IdentityServer4 Asp.Net核心身份

是否有一个示例,该示例如何创建一个通过IdentityServer4进行身份验证的dotnet core 3控制台应用程序?

MVC Web Api身份验证失败