POST请求中Identity Token应当放在请求头还是请求体中?
ID令牌(Identity Token)传递方案及合规性说明
你当前将ID令牌放在HTTPS POST请求体中传递的做法完全符合OpenID Connect(OIDC)相关规范,不存在违反标准的问题,针对你列出的三个选项的具体说明如下:
- 放在POST请求的请求体中
这是当前场景下最推荐的方案之一。ID令牌的核心设计目的就是向客户端传递用户身份断言,和用于API访问授权的Access Token定位不同,OIDC规范明确允许客户端将获取到的ID令牌通过POST请求提交给自有后端,用于身份核验、用户claims提取、账号注册/绑定等场景,只要全程走HTTPS就能保障传输安全,你的现有用法完全合规。 - 放在自定义请求头中
该方案也具备可行性,你可以使用X-Identity-Token这类自定义请求头存放ID令牌,不存在请求头只能承载Access Token的限制,Authorization头只是行业默认约定用于传递Access Token,自定义头的用法不受约束。不过该方案和放请求体的方式相比没有明显优势,仅当你的系统统一要求通过请求头传递身份相关参数时才建议选用。 - 关于ID Token用途的误解说明
你当前通过SSO获取ID令牌、提取其中的用户claims完成自有系统注册的用法,完全匹配ID令牌的设计用途,不存在理解偏差。
额外注意:无论采用哪种传递方式,都必须完成以下校验保障安全:校验ID令牌的签名合法性,同时校验签发者(iss)、受众(aud)、过期时间(exp)三个核心字段,避免伪造或过期的ID令牌被滥用。
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

