我是不是在发布请求的标头或正文中传递身份令牌?
Posted
技术标签:
【中文标题】我是不是在发布请求的标头或正文中传递身份令牌?【英文标题】:Do I Pass the Identity Token in a Header or Body of a Post Request?我是否在发布请求的标头或正文中传递身份令牌? 【发布时间】:2021-12-12 07:06:54 【问题描述】:标题中的访问令牌和刷新令牌对我来说很有意义(来自this 答案),但我想知道对于 ID 或身份令牌也是如此。应该是:
-
已传递到发布请求的正文中?
传入某个标头(授权标头由访问令牌使用)
别的东西(我误解了身份令牌的用途)
更多上下文,通过 SSO,我想获取用户的声明(仅存在于身份令牌中)并在我的系统中注册。我可以确认我可以通过将身份令牌放入初始 POST 请求的正文中轻松做到这一点(并验证服务器上的签名),但想检查我是否违反了某些标准。
谢谢!
【问题讨论】:
【参考方案1】:原则上你可以传递 ID 令牌,假设:
-
使用和验证 ID 令牌(依赖方,RP)的软件与目标系统属于同一应用程序和安全域
RP 和目标系统之间的链接是安全的,即双方的身份验证和通信的机密性都已建立
目标系统确实需要 ID 令牌中的所有信息,否则最好应用最少的披露并仅传递信息的子集
如果数据量相对较小,在标头中传递 ID 令牌(或声明的子集)可能会起作用,否则您可能会遇到 HTTP 标头长度限制。虽然使用 POST 的缺点是必须在运行中修改应用程序请求,这可能会更困难并且会产生副作用。
为了完整起见,刷新令牌永远不会在标头中传递,而只会由 RP 在 POST 请求中发送到授权服务器/提供者。
【讨论】:
以上是关于我是不是在发布请求的标头或正文中传递身份令牌?的主要内容,如果未能解决你的问题,请参考以下文章
为啥加特林不将身份验证令牌从 POST 返回正文发布到 GET 标头
我应该通过 HTTP 标头或将正文作为 JSON 传递到 REST Api 吗?