Liberty 儲存庫[8.5.5.4 或更新版本]

呼叫 OpenID Connect 的記號端點

在 OpenID Connect 的「授權碼流程」中,記號端點供用戶端用來取得 ID 記號、存取記號和重新整理記號。

開始之前

例如,從瀏覽器內的用戶端應用程式,或從用 Scripting 語言(例如 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. 使用 POST 將要求公佈到記號端點 URL。

結果

完成這些步驟之後,您已具有有效的 HTTP POST 要求,且將傳送給記號端點。記號端點依「範例」區段所述傳回回應。

一旦「OpenID Connect 提供者」驗證從用戶端所收到的記號要求,「OpenID Connect 提供者」會將 HTTP 200 回應傳回給用戶端,且其中含有一個 application/json 格式的 JSON 物件。回應中含有 ID 記號、存取記號和重新整理記號,以及下列的額外參數:

  • token_type:OAuth 2.0 記號類型。對於 OpenID Connect,此值是 Bearer
  • expires_in:存取記號自產生回應算起的有效期限(以秒為單位)。

在記號端點所發出的回應中,只要回應含有記號、密碼或其他機密性資訊,都會將其 Cache-Control 標頭值設為 no-store,將 Pragma 標頭值設為 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"
 }

指示主題類型的圖示 作業主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_oidc_token_endpoint
檔名:twlp_oidc_token_endpoint.html