具有ASPNET CORE MVC OIDC身份验证的IdentityServer4 -API范围限制



我有一个MVC应用程序,该应用使用Microsoft.aspnetcore.authentication.openidconnect中间件对IDS4(Core 1.1)。MVC调用后端Web API,并在身份验证后获得访问令牌。我正在使用"代码id_token"响应。我已经使用示波器对API进行了细分,但是我有很多,即15.当我构建客户所需的范围时,我添加了oidcoptions:

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

这绝对效果很好。但是,我又添加了两个示波器,现在IDS报告了MVC对ID进行OIDC挑战时的以下内容,即在用户使用登录表单呈现

之前

坏请求

我可以从我的MVC应用程序中的列表中删除任何两个范围,然后再开始工作。这使我认为可以要求的示波器数量有一定的限制,或者有一些URL长度的问题?我看了OIDC中间件和ID的源代码,我找不到任何限制客户端可能请求的API范围的任何东西。

有什么想法?

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

供参考,请参阅:https://github.com/indistityserver/indistityserver4/blob/aspnetcore1/src/indentityserver4/configuration/configuration/depparendendentiondoction/InputLations/inputlenteptions/inputlentepions.cs

cs

注意,这是针对DOT Net Core v1.1- v2.0的类似限制。

最新更新