
![[8.5.5.4 或更新版本]](../ng_v8554.gif)
呼叫 OpenID Connect 的記號端點
在 OpenID Connect 的「授權碼流程」中,記號端點供用戶端用來取得 ID 記號、存取記號和重新整理記號。
開始之前
關於這項作業
記號端點會接受用戶端的要求,而要求中含有授權端點簽發給用戶端的授權碼。當授權碼通過驗證時,會將適當的記號放在回應中傳回給用戶端。
在 OpenID Connect 的「隱含流程」中,不使用記號端點。
啟用 OpenID Connect 的 Liberty 設定檔伺服器能夠存取位於下列 URL 的 OpenID Connect 記號端點:
https://server.example.com:443/oidc/endpoint/<provider_name>/token
註: 在本例中,OP 的 SSL 埠預期是 443。與記號端點之間的所有通訊必須使用 TLS。
程序
結果
一旦「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。
.範例
這裡顯示範例要求:
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"
}