让我们举个例子,我们有一个使用OIDC隐式流访问API的SPA。
由于OAuth作用域是粗粒度的,因此通常需要在资源服务器上执行其他授权。例如,当通过端点访问动态资源(例如文件系统)时可能就是这种情况 - 其中访问受到与userId相关联的权限的限制,但仅仅因为资源的动态特性而使用OAuth范围是不切实际的。 / p>
在这些情况下,端点本身可以受OAuth范围的保护,而对端点操作的资源(例如文件)的访问将基于userId授予。因此,必须在API请求中安全地发送用户的身份。
一个明确的选择可以是发送身份验证时获得的ID令牌以及同时获取的访问令牌。
在HTTP请求(Authorization标头)中有一种标准的发送访问令牌的方法,但是有一个用于ID令牌吗?或者我应该只编写一个像'X-Identity'这样的标题名称?
答案 0 :(得分:1)
回答这个问题:在HTTP请求中没有传递ID令牌的标准。
但可以说不需要成为一个:在这种情况下,您可能不需要OpenID Connect,因为scopes
不是唯一可以与OAuth 2.0访问令牌关联的信息,因为您似乎建议。
你可以"关联" userId具有访问令牌,以便资源服务器可以根据向客户端授予访问令牌的用户的身份授予客户端对受保护资源的访问权。
"协会"依赖于实现:访问令牌可以是包含userId声明的JWT,或者访问令牌可以是不透明值,资源服务器可以在授权服务器上内省/验证以获取与其关联的信息。
答案 1 :(得分:-1)
您可以将其作为字符串参数传递,而不是将其传递给标题:
curl "https://resourcePath?auth=<ID_TOKEN>