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

呼叫 OpenID Connect 的內部檢查端點

內部檢查端點可讓存取記號的持有者向簽發存取記號的「OpenID Connect 提供者」,要求存取記號的一組相關 meta 資料。存取記號必須是透過 OpenID Connect 或 OAuth 鑑別所取得的存取記號。

開始之前

當資源服務或用戶端應用程式呼叫內部檢查端點時,它必須將自己當成一般的 OAuth 2.0 用戶端登錄到 OpenID Connect 伺服器中。已登錄用戶端的 meta 資料必須包含 introspectTokens = true 屬性。

關於這項作業

存取記號內要用於 OpenID Connect 和 OAuth 2.0 中的資訊,是用戶端看不到的。這可讓受保護資源或用戶端,根據「OpenID Connect 提供者」所傳回的存取記號相關 meta 資料,來做出授權決策。

啟用 OpenID Connect 的 Liberty 設定檔伺服器能夠存取位於下列 URL 的 OpenID Connect 內部檢查端點:

 https://server.example.com:443/oidc/endpoint/<provider_name>/introspect
註: 在本例中,OP 的 SSL 埠預期是 443。

程序

  1. GETPOST 要求的 HTTP Basic Authorization 標頭中,使用已登錄「OpenID Connect 用戶端」的用戶端 ID 和密碼,來設定用戶端鑑別。用戶端 ID 和密碼是用 application/x-www-form-urlencoded 編碼演算法來編碼。使用已編碼的用戶端 ID 作為使用者名稱,使用已編碼的密碼作為密碼。
  2. 將存取記號的字串值當成參數,包含在要傳給內部檢查端點的 GETPOST 要求中。
  3. GETPOST 要求傳送給內部檢查端點 URL。

結果

完成這些步驟之後,您已具有有效的 HTTP 要求,且將傳送給內部檢查端點,如「範例」區段所示。

如果是有效的要求,內部檢查端點會傳回 HTTP 200 回應,內含一個 application/json 格式的 JSON 物件,視存取記號是作用中或已過期而定,該物件會包含下列資訊。

如果存取記號為作用中,端點會傳回 active:true,且 JSON 物件還包含下列額外資訊:

active
此布林指示器指出存取記號是否為作用中。
client_id
要求存取記號之「OpenID Connect 用戶端」的用戶端 ID。
sub
授權存取記號的資源擁有者。
scope
該存取記號相關聯的範圍清單(以空格區隔)。
iat
從 1970 1 月 1 日 UTC(世界標準時間)算起的存取記號簽發時間戳記(整數),以秒為測量單位。
exp
從 1970 1 月 1 日 UTC(世界標準時間)算起的存取記號到期時間戳記(整數),以秒為測量單位。
realmName
資源擁有者的領域名稱。
uniqueSecurityName
資源擁有者的唯一安全名稱。
tokenType
存取記號類型。對於 OpenID Connect,此值是 Bearer
grant_type
此字串指出所產生之存取記號的許可類型。可能的值是:authorization_codepasswordrefresh_tokenclient_credentialsresource_ownerimpliciturn:ietf:params:oauth:grant-type:jwt-bearer

如果存取記號過期,但是所提供的鑑別還有效,或者如果所提供的存取記號是錯誤類型,端點會在 JSON 物件中傳回 active:false

註: 對於執行存取記號內部檢查的用戶端或資源服務,該用戶端或資源服務必須將自己當成用戶端登錄到 OpenID Connect 提供者中,且用戶端 meta 資料必須將 introspect_tokens 設為 true

範例

下列顯示作用中存取記號和過期存取記號的範例,以及一項要求。

這裡顯示範例要求:

POST /register HTTP/1.1
 Accept: application/x-www-form-urlencoded
 Authorization: Basic czZCaGRSa3F0Mzo3RmpmcDBaQnIxS3REUmJuZlZkbUl3
     token=SOYleDziTitHeKcodp6vqEmRwKPjz3lFZTcsQtVC

作用中存取記號的範例回應:

 HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
{  
   "exp"                : 1415307710,
   "realmName"          : "BasicRealm",
   "sub"                : "testuser",
   "scope"              : "openid scope2 scope1",
   "grant_type"         : "authorization_code",
   "uniqueSecurityName" : "testuser",
   "active"             : true,
   "token_type"         : "Bearer",
   "client_id"          : "pclient01",
   "iat"                : 1415307700
}

過期存取記號的範例回應:

 HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
 {
     "active":"false"
 }

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

資訊中心條款 | 意見


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