本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用者屬性端點
當 OIDC發行包含使用者屬性的 ID 權杖時,2.0 OAuth 會實作/oauth2/userInfo
端點。已驗證的使用者或用戶端會收到具有scopes
宣告的存取權杖。此宣告會決定授權伺服器應傳回的屬性。當應用程式向userInfo
端點顯示存取權杖時,授權伺服器會傳回回應內文,其中包含在存取權杖範圍所設定範圍內的使用者屬性。您的應用程式可以從userInfo
端點擷取有關使用者的資訊,只要它擁有具有至少openid
範圍宣告的有效存取權杖。
userInfo
端點是 OpenID Connect (OIDC) userInfo端點 openid
範圍必須是存取權杖宣告之一。
Amazon Cognito 會發出存取權杖以回應使用者集區API請求,例如 InitiateAuth。 由於它們不包含任何範圍,因此 userInfo 端點不接受這些存取權杖。反之,您必須從權杖端點出示存取權杖。
您的 OAuth 2.0 第三方身分提供者 (IdP也會託管 userInfo 端點。當您的使用者使用該 IdP 進行身分驗證時,Amazon Cognito 會無聲與 IdP token
端點交換授權碼。您的使用者集區會傳遞 IdP 存取權杖,以授權從 IdP userInfo
端點擷取使用者資訊。
GET /oauth2/userInfo
您的應用程式會直接對此端點提出請求,而不經由瀏覽器。
如需詳細資訊,請參閱 UserInfo OpenID Connect (OIDC) 規格中的端點
標頭中的請求參數
Authorization: Bearer
<access_token>
-
在授權標頭欄位中傳遞存取權杖。
必要。
範例 – 請求
GET /oauth2/userInfo HTTP/1.1 Content-Type: application/x-amz-json-1.1 Authorization: Bearer eyJra12345EXAMPLE User-Agent:
[User agent]
Accept: */* Host: auth.example.com Accept-Encoding: gzip, deflate, br Connection: keep-alive
範例 – 正面回應
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length:
[Integer]
Date:[Timestamp]
x-amz-cognito-request-id:[UUID]
X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 Strict-Transport-Security: max-age=31536000 ; includeSubDomains X-Frame-Options: DENY Server: Server Connection: keep-alive { "sub": "[UUID]
", "email_verified": "true", "custom:mycustom1": "CustomValue", "phone_number_verified": "true", "phone_number": "+12065551212", "email": "bob@example.com", "username": "bob" }
如需OIDC宣告清單,請參閱標準宣告 email_verified
和 phone_number_verified
傳回字串值。
負面回應範例
範例 – 錯誤請求
HTTP/1.1 400 Bad Request
WWW-Authenticate: error="invalid_request",
error_description="Bad OAuth2 request at UserInfo Endpoint"
invalid_request
-
請求缺少必要的參數、包含不支援的參數值,或者格式不正確。
範例 – 錯誤的字符
HTTP/1.1 401 Unauthorized
WWW-Authenticate: error="invalid_token",
error_description="Access token is expired, disabled, or deleted, or the user has globally signed out."
invalid_token
-
存取權杖已過期、已撤銷、格式不正確或無效。