OpenID Connect JWT令牌包含id_token
和access_token
(如"access_token": "SlAV32hkKG"
)。什么是access_token
?
只需添加一个示例来补充从this linked article
中获取的答案 用户信息端点请求GET /userinfo HTTP/1.1
Host: openid.c2id.com
Authorization: Bearer SlAV32hkKG
用户信息端点响应
HTTP/1.1 200 OK
Content-Type: application/json
{
"sub" : "alice",
"email" : "alice@wonderland.net",
"email_verified" : true,
"name" : "Alice Adams",
"picture" : "https://c2id.com/users/alice.jpg"
}
答案 0 :(得分:2)
你的问题的答案在于specification的第5.3和16.4节。访问令牌用于访问作为受保护资源的userinfo端点。
16.4。访问令牌披露
访问令牌是用于访问受保护资源的凭据,如OAuth 2.0 [RFC6749]的第1.4节中所定义。访问令牌代表最终用户的授权,不得暴露给未授权方。
[...]
5.3。 UserInfo端点
UserInfo端点是OAuth 2.0受保护资源,它返回有关经过身份验证的最终用户的声明。要获取有关最终用户的请求声明,客户端使用通过OpenID Connect身份验证获取的访问令牌向UserInfo端点发出请求。这些声明通常由JSON对象表示,该对象包含声明的名称和值对的集合。
答案 1 :(得分:1)
tl; dr - 访问令牌 授予访问受保护资源的权限,其中 ID令牌 进行身份验证。
访问令牌
作为对OAuth2.0的扩展,OpenID Connect保留OAuth2.0规范中定义的令牌/参数。 访问令牌 就是这样的一件事。根据协议的定义,访问令牌用于访问受保护的资源。它取代了用户凭证,手动生成的令牌或过去使用过的安全密钥(例如: - 考虑基本身份验证)。
请注意,访问令牌可以是不透明的字符串。这意味着接收它的客户端无法消费它。但授权服务器知道它是什么。例如,内省端点(RFC7662)可用于验证访问令牌的有效性。并且访问令牌也可以是JWT,具体取决于使用和实现。
ID令牌
这是OpenID Connect引入OAuth2.0的内容。 ID令牌是JWT,客户端使用它来验证最终用户(资源所有者)。通过验证ID令牌,客户端可以进行身份验证。由于这个事实,人们可以说它只能用一次。
另请注意,在某些实现中,ID令牌被用作承载令牌。这意味着,ID令牌就像访问令牌一样用于身份验证和授权。