OpenID Connect访问令牌有何作用?

3
OpenID Connect JWT令牌包含一个id_token和一个access_token(例如:"access_token": "SlAV32hkKG")。那么access_token是用来做什么的?
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"
}
2个回答

2
你的问题的答案在规范的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

简述 - 访问令牌授权访问受保护的资源,ID令牌用于客户端进行身份验证。

访问令牌

作为OAuth2.0的扩展,OpenID Connect保留了在OAuth2.0规范中定义的令牌/参数。其中之一就是访问令牌。根据协议的定义,访问令牌用于访问受保护的资源。它取代了用户凭据、手动生成的令牌或以前使用的安全密钥(例如基本身份验证)。

请注意,访问令牌可以是不透明的字符串。这意味着接收该令牌的客户端无法使用它。但是授权服务器知道它是什么。例如,可以使用内省端点(RFC7662)来验证访问令牌的有效性。根据使用和实现,访问令牌也可以是JWT。

ID令牌

这就是OpenID Connect引入OAuth2.0的内容。ID令牌是JWT,由客户端消耗以对最终用户(资源所有者)进行身份验证。通过验证ID令牌,客户端有能力进行身份验证。由于这个事实,可以说它只用一次。
另外请注意,在某些实现中,ID令牌被用作持有者令牌。这意味着,ID令牌像访问令牌一样用于身份验证和授权。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接