OIDC 隐式流 - 重定向 uri 长度
OIDC Implicit flow - redirect uri length
我正在将 OIDC 与响应类型 "id_token token" 的隐式代码流结合使用。一切正常,但注意到带有访问令牌、id_token、范围和 session_state + 域名的回调 url 已经包含 2033 个字符。我正在处理的项目需要支持 IE 10,据我所知有限制 URL 2048 个字符。我有点害怕回调的长度 url 正在危险地接近这个限制。
对于这样的情况,建议的方法是什么?我可以将响应类型更改为 "token",然后从用户信息端点请求用户信息吗?或者我应该做些什么来减少回调 url 的大小,尝试减少 access_token 和 id_token 中的信息?第三个选项似乎是参考令牌,但我有点担心额外调用 STS 的开销。
在项目中我使用oidc-client-js和IdentityServer4。
谢谢
尽量保持令牌尽可能小。 IOW 更少索赔。
IdentityServer 在访问令牌可用的情况下默认从身份令牌中删除所有附加声明(除非您覆盖此行为)。
参考令牌是另一种处理您所说的方法。通过在 API 中间件中启用缓存,您可以保持较小的开销。
IE 是瘟疫。
这里有类似的问题,但与 Electron 应用程序有关。 Electron 应用程序需要调用受保护的 API。 API 需要知道主叫用户的身份。我尝试将响应类型从 "id_token token" 更改为 "token" 但 IdentityServer 身份验证尝试现在导致:
UI:
Sorry, there was an error : invalid_scope
调试输出:
Requests for token response type only must include resource scopes, but no identity scopes
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",
};
我正在将 OIDC 与响应类型 "id_token token" 的隐式代码流结合使用。一切正常,但注意到带有访问令牌、id_token、范围和 session_state + 域名的回调 url 已经包含 2033 个字符。我正在处理的项目需要支持 IE 10,据我所知有限制 URL 2048 个字符。我有点害怕回调的长度 url 正在危险地接近这个限制。 对于这样的情况,建议的方法是什么?我可以将响应类型更改为 "token",然后从用户信息端点请求用户信息吗?或者我应该做些什么来减少回调 url 的大小,尝试减少 access_token 和 id_token 中的信息?第三个选项似乎是参考令牌,但我有点担心额外调用 STS 的开销。
在项目中我使用oidc-client-js和IdentityServer4。
谢谢
尽量保持令牌尽可能小。 IOW 更少索赔。
IdentityServer 在访问令牌可用的情况下默认从身份令牌中删除所有附加声明(除非您覆盖此行为)。
参考令牌是另一种处理您所说的方法。通过在 API 中间件中启用缓存,您可以保持较小的开销。
IE 是瘟疫。
这里有类似的问题,但与 Electron 应用程序有关。 Electron 应用程序需要调用受保护的 API。 API 需要知道主叫用户的身份。我尝试将响应类型从 "id_token token" 更改为 "token" 但 IdentityServer 身份验证尝试现在导致:
UI:
Sorry, there was an error : invalid_scope
调试输出:
Requests for token response type only must include resource scopes, but no identity scopes
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",
};