使用者屬性端點 - Amazon Cognito

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用者屬性端點

當 OIDC發行包含使用者屬性的 ID 權杖時,2.0 OAuth 會實作/oauth2/userInfo端點。已驗證的使用者或用戶端會收到具有scopes宣告的存取權杖。此宣告會決定授權伺服器應傳回的屬性。當應用程式向userInfo端點顯示存取權杖時,授權伺服器會傳回回應內文,其中包含在存取權杖範圍所設定範圍內的使用者屬性。您的應用程式可以從userInfo端點擷取有關使用者的資訊,只要它擁有具有至少openid範圍宣告的有效存取權杖。

userInfo 端點是 OpenID Connect (OIDC) userInfo端點 。當服務供應商顯示權杖端點發行的存取權杖時,它會以使用者屬性來回應。使用者存取權杖中的範圍定義 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宣告清單,請參閱標準宣告 。目前,Amazon Cognito 會針對 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

存取權杖已過期、已撤銷、格式不正確或無效。