对 OpenID Connect 调用令牌端点

在 OpenID Connect 授权代码流程中,客户机使用令牌端点来获取标识令牌、访问令牌和刷新令牌。

开始之前

从浏览器内的客户机应用程序或脚本语言(例如,JavaScript)中实现的客户机应用程序启动令牌端点时,不需要将 Liberty 服务器配置为 OpenID Connect 客户机。

关于此任务

令牌端点接受客户机的请求,此请求包含授权端点对客户机发出的授权代码。验证授权代码后,系统返回相应令牌作为对客户机的响应。

OpenID Connect 隐式流程中未使用令牌端点。

已启用 OpenID Connect 的 Liberty 服务器可访问位于以下 URL 的 OpenID Connect 令牌端点:

 https://server.example.com:443/oidc/endpoint/<provider_name>/token
注: 在此示例中,OP 的 SSL 端口应该为 443。带有令牌端点的所有通信必须使用 TLS。

过程

  1. 使用以下参数准备 HTTP POST 请求。
    • grant_type:此参数的值必须为 authorization_code
    • code:从授权端点接收到的授权代码。

    这些参数必须通过使用 application/x-www-form-urlencoded 格式添加。

  2. 将请求发布至令牌端点 URL。

结果

完成这些步骤后,您将获得有效 HTTP POST 请求,此请求将发送至令牌端点。令牌端点按“示例”一节中描述的方式返回响应。

OpenID Connect 提供者验证从客户机接收到的令牌请求时,OpenID Connect 提供者将带有 application/json 格式的 JSON 对象的 HTTP 200 响应返回至客户机。此响应包含标识令牌、访问令牌和刷新令牌及以下附加参数:

  • token_type:OAuth 2.0 令牌类型。对于 OpenID Connect,此值为 Bearer
  • expires_in:从生成响应开始算起访问令牌的到期时间(以秒计)。

对于来自包含令牌、密钥或其他敏感信息的令牌端点的所有响应,其 Cache-Control 头值设置为 no-storePragma 头值设置为 no-cache

.

示例

下面显示 HTTP POST 请求和响应的示例

以下显示请求示例:

 POST /token HTTP/1.1
 Content-Type: application/x-www-form-urlencoded
 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     grant_type=authorization_code
     &code=SplxlOBeZQQYbYS6WxSbIA 		
     &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb

以下显示响应示例:

 HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
 Pragma: no-cache
 {
     "access_token": "SlAV32hkKG",
     "token_type": "Bearer",
     "refresh_token": "8xLOxBtZp8",
     "expires_in": 3600,
     "id_token": "eyJ ... zcifQ.ewo ... NzAKfQ.ggW8h ... Mzqg"
 }

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_oidc_token_endpoint
文件名:twlp_oidc_token_endpoint.html