OIDC隐式流 - 重定向uri长度

时间:2017-03-11 10:20:13

标签: identityserver4 oidc oidc-client-js

我使用OIDC和隐式代码流,响应类型为" id_token token"。一切都很好,但注意到具有访问令牌,id_token,范围和session_state +域名的回调网址已经包含2033个字符。我正在开发的项目需要支持IE 10,据我所知,有一个限制URL为2048个字符。我有点害怕回调网址的长度危险地适应这个限制。 这种情况的建议方法是什么?我可以将响应类型更改为"令牌"然后从用户信息端点请求用户信息?或者我应该做些什么来减少回调网址的大小,尝试减少access_token和id_token中的信息?第三种选择似乎是参考令牌,但我对STS的一次额外调用几乎不担心开销。

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

由于

2 个答案:

答案 0 :(得分:2)

尽量保持令牌尽可能小。减少索赔。

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

参考标记是另一种处理方式,就像你说的那样。通过在API中间件中启用缓存,可以减少开销。

IE是瘟疫。

答案 1 :(得分:0)

此处类似的问题,但与电子应用程序。 Electron app需要调用受保护的API。 API需要知道主叫用户的身份。我尝试将响应类型从“id_token token”更改为“token”,但IdentityServer auth尝试现在导致:

UI:

  

抱歉,出现了错误: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",
};