【发布时间】:2018-05-12 15:10:24
【问题描述】:
我有一个 MVC 应用程序,它使用针对 IdS4(核心 1.1)的 Microsoft.AspNetCore.Authentication.OpenIdConnect 中间件。 MVC 使用身份验证后获得的访问令牌调用后端 Web API。我正在使用“代码 id_token”响应。我已经使用范围对 API 进行了分段,但其中有很多,即 15 个。当我构建 OIDCoptions 时,我添加了客户端需要的范围:
oidOptions.Scope.Add("usersRead"); // Api scope
oidOptions.Scope.Add("usersWrite"); // Api scope
这工作得非常好。但是,我又添加了两个范围,现在 IdS 会在 MVC 对 IdS 进行 OIDC 质询时报告以下内容,即在向用户显示登录表单之前
错误的请求
我可以从我的 MVC 应用程序的列表中删除任意两个范围,它会再次开始工作。这让我觉得可以请求的范围数量有一些限制,或者 URL 长度有一些问题?我查看了 OIDC 中间件和 IdS 的源代码,但找不到任何会限制客户端可能请求的 API 范围数量的内容。
有什么想法吗?
【问题讨论】:
-
也许,日志可能有额外的信息。你检查过日志吗?
-
尝试从请求中删除两个作用域,然后将第三个作用域的名称设置得太长,无法知道问题是否是“URL 长度问题”
标签: asp.net-mvc identityserver4 openid-connect