OIDC 隐式流程 - 重定向 uri 长度

问题描述 投票:0回答:2

我使用带有隐式代码流的 OIDC,响应类型为“id_token token”。一切正常,但注意到带有访问令牌、id_token、范围和 session_state + 域名的回调 url 已包含 2033 个字符。我正在开发的项目需要支持 IE 10,据我所知,URL 的长度限制为 2048 个字符。我担心回调 url 的长度会危险地接近此限制。 对于这样的情况,建议采取什么方法?我可以将响应类型更改为“令牌”,然后从用户信息端点请求用户信息吗?或者也许我应该做一些事情来减少回调网址的大小,尝试减少 access_token 和 id_token 中的信息?第三个选项似乎是引用令牌,但我不太担心对 STS 进行一次额外调用的开销。

在项目中我使用oidc-client-js和IdentityServer4。

谢谢

identityserver4 openid-connect oidc-client-js
2个回答
3
投票

尽量保持代币尽可能小。 IOW 索赔减少。

在访问令牌可用的情况下,IdentityServer 默认会从身份令牌中删除所有其他声明(除非您覆盖此行为)。

正如您所说,参考令牌是处理此问题的另一种方式。通过在 API 中间件中启用缓存,您可以保持较小的开销。

IE 是瘟疫。


0
投票
这里有类似的问题,但与 Electron 应用程序有关。 Electron应用程序需要调用受保护的API。 API需要知道调用用户的身份。我尝试将响应类型从“id_token token”更改为“token”,但 IdentityServer 身份验证尝试现在会导致:

用户界面:

抱歉,出现错误:invalid_scope

调试输出:

仅令牌响应类型的请求必须包含资源范围,但不能包含身份范围

Javascript 配置(借自 Dom 出色的 Javascript 示例客户端):

var config = { authority: "http://localhost:5000", client_id: "js", redirect_uri: "http://localhost:5003/callback.html", response_type: "token", scope:"openid profile TestApi", post_logout_redirect_uri : "http://localhost:5003/index.html", };
    
© www.soinside.com 2019 - 2024. All rights reserved.