呼叫 OpenID Connect 的 UserInfo 端點

UserInfo 端點會針對接受 OpenID Connect 鑑別程序鑑別的使用者,傳回其相關聲明。

關於這項作業

為了取得使用者的聲明,用戶端以存取記號作為認證,對 UserInfo 端點發出要求。存取記號必須是透過 OpenID Connect 鑑別所取得的存取記號。存取記號所代表之使用者的聲明,會以 JSON 物件形式傳回,其中含有聲明的名稱/值配對集合。UserInfo 端點是一種 OAuth 2.0 受保護資源,也就是說,存取端點所需的認證就是存取記號。

UserInfo 端點傳回的聲明可以使用「OpenID Connect 提供者」配置來自訂;請參閱配置 UserInfo 端點所傳回的聲明

啟用 OpenID Connect 的 Liberty 設定檔伺服器能夠存取位於下列 URL 的 OpenID Connect UserInfo 端點:
https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo
註: 在本例中,OP 的 SSL 埠預期是 443。

程序

  1. 使用透過 OpenID Connect 鑑別取得的存取記號,來設定鑑別。可以在 HTTP Basic Authorization 標頭中或使用 access_token 要求參數,來提供存取記號。無論何者,存取記號都不需要編碼。
  2. GETPOST 要求傳送給 UserInfo 端點 URL。

結果

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

如果是有效的要求,UserInfo 端點會傳回 HTTP 200 回應,內含一個 application/json 格式的 JSON 物件,該物件會包含配置給「OpenID Connect 提供者」的聲明。

範例

下列範例說明具有有效記號和無效記號的要求。

  • 使用 HTTP Bearer Authorization 標頭來傳遞存取記號的要求
  • 對於有效存取記號的回應
  • 無效的存取記號
使用 HTTP Bearer Authorization 標頭來傳遞存取記號的範例要求:
POST /register HTTP/1.1
Accept: application/x-www-form-urlencoded
Authorization: Bearer fAAdLO1c6QWDbPs9HrWHz5e7nRWVAnxqTTP7i88G
也可以使用 access_token 要求參數來傳遞記號:
 POST /register HTTP/1.1
 Accept: application/x-www-form-urlencoded
     access_token=fAAdLO1c6QWDbPs9HrWHz5e7nRWVAnxqTTP7i88G

最佳作法是使用 HTTP Authorization 標頭,而不使用 access_token 要求參數,這是因為可能含有機密性資訊的 HTTP 要求參數可以儲存在瀏覽器歷程或快取中。

這裡是有效存取記號的範例回應。一律會傳回 subgroupIds 聲明。這裡顯示的其他聲明,是「OpenID Connect 提供者」的預設聲明。
 HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
 Pragma: no-cache
{
   "sub"          : "bob",
   "groupIds"     : [ "bobsdepartment","administrators" ], 
   "given_name"   : "Bob",
   "name"         : "Bob Smith",
   "email"        : "bob@mycompany.com",
   "phone_number" : "+1 (604) 555-1234;ext5678",
   "address"      : { "formatted" : "123 Main St., Anytown, TX 77777" },
   "picture"      : "http://mycompany.com/bob_photo.jpg"
}
如果是無效的存取記號,UserInfo 端點會傳回 HTTP 401 狀態碼,且 WWW-AUTHENTICATE 標頭中會有一則錯誤訊息。
HTTP/1.1 401 Unauthorized
CONTENT-LENGTH : 0
WWW-AUTHENTICATE : Bearer error=invalid_token,       
   error_description=CWWKS1617E: 使用無法辨識的存取記號提出 userinfo 要求。要求 URI 是 /oidc/endpoint/MyOAuthProvider/userinfo。

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



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_oidc_userinfo_endpoint
檔名:twlp_oidc_userinfo_endpoint.html