本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解身分 (ID) 字符
ID 權杖是 JSON Web 權杖 (JWT)name
、 email
和 phone_number
。您可以在應用程式內部使用此身分資訊。ID 權杖也可以用來向資源伺服器或伺服器應用程式驗證使用者的身分。您也可以將 ID 字符用於應用程式外部的 Web API操作。在那些情況下,您必須先驗證 ID 權杖的簽章,才能信任 ID 權杖中的任何宣告。請參閱 驗證 JSON Web 權杖。
您可以將 ID 權杖過期設為 5 分鐘到 1 天的值。此值可根據應用程式用戶端設定。
重要
當您的使用者以託管 UI 或聯合身分提供者 (IdP) 登入時,Amazon Cognito 會設定有效期為 1 小時的工作階段 Cookie。如果您使用託管 UI 或聯合,並且為存取和 ID 權杖指定少於 1 小時的最短持續時間,則您的使用者仍將有一個有效的工作階段,直到 Cookie 到期為止。如果使用者的權杖會在一小時的工作階段內過期,則使用者可以重新整理其權杖,無需重新驗證身分。
ID 權杖標頭
標頭包含兩項資訊:金鑰 ID (kid
) 和演算法 (alg
)。
{ "kid" : "1234example=", "alg" : "RS256" }
kid
-
金鑰 ID。其值表示用來保護權杖 JSON Web Signature (JWS) 的金鑰。您可以在IDs
jwks_uri
端點檢視使用者集區簽署金鑰。如需
kid
參數的詳細資訊,請參閱金鑰識別符 (kid) 標頭參數。 alg
-
Amazon Cognito 用來保護存取權杖安全的加密演算法。使用者集區使用RS256密碼編譯演算法,這是 SHA-256 的RSA簽章。
如需
alg
參數的詳細資訊,請參閱演算法 (alg) 標頭參數。
ID 權杖預設承載
這是來自 ID 權杖的範例承載。它包含有關已驗證使用者的宣告。如需 OpenID Connect (OIDC) 標準宣告的詳細資訊,請參閱OIDC標準宣告清單
<header>
.{ "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups": [ "test-group-a", "test-group-b", "test-group-c" ], "email_verified": true, "cognito:preferred_role": "arn:aws:iam::111122223333:role/my-test-role", "iss": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "cognito:username": "my-test-user", "middle_name": "Jane", "nonce": "abcdefg", "origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:roles": [ "arn:aws:iam::111122223333:role/my-test-role" ], "aud": "xxxxxxxxxxxxexample", "identities": [ { "userId": "amzn1.account.EXAMPLE", "providerName": "LoginWithAmazon", "providerType": "LoginWithAmazon", "issuer": null, "primary": "true", "dateCreated": "1642699117273" } ], "event_id": "64f513be-32db-42b0-b78e-b02127b4f463", "token_use": "id", "auth_time": 1676312777, "exp": 1676316377, "iat": 1676312777, "jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "email": "my-test-user@example.com" } .<token signature>
sub
-
已驗證使用者的唯一識別碼 (UUID) 或主旨。使用者名稱在您的使用者集區中可能不是唯一的。
sub
宣告是識別特定使用者的最佳方法。 cognito:groups
-
以您的使用者為成員的使用者集區群組名稱陣列。群組可以是您呈現給應用程式的識別符,也可以從身分集區產生偏好IAM角色的請求。
cognito:preferred_role
-
與使用者最高優先順序使用者集區群組相關聯的IAM角色ARN的 。如需使用者集區如何選取此角色宣告的詳細資訊,請參閱指定優先順序值給群組。
iss
-
發行權杖的身分提供者。宣告的格式如下。
https://cognito-idp.
<Region>
.amazonaws.com/<your user pool ID>
cognito:username
-
您的使用者在您的使用者集區中的使用者名稱。
nonce
-
nonce
宣告來自相同名稱的參數,您可以將 新增至 2.0 OAuthauthorize
端點的請求。新增參數時,nonce
宣告會包含在 Amazon Cognito 發出的 ID 權杖中,您可以使用它來防止重新執行攻擊。如果您未提供nonce
值,Amazon Cognito 會在您透過第三方身分提供者進行身分驗證時自動產生並驗證 Nonce,然後將其新增為 ID 權杖中的nonce
宣告。在 Amazon Cognito 中實作nonce
宣告是以OIDC標準為基礎。 origin_jti
-
與使用者的重新整理權杖相關的權杖撤銷識別符。Amazon Cognito 會在檢查您是否使用 撤銷端點或 RevokeTokenAPI操作撤銷使用者的權杖時參考
origin_jti
宣告。在撤銷權杖時,Amazon Cognito 會使所有具相同origin_jti
值的存取權和 ID 權杖無效。 cognito:roles
-
與您使用者群組相關聯的IAM角色名稱陣列。每個使用者集區群組都可以有一個與其相關聯的IAM角色。此陣列代表使用者群組的所有IAM角色,無論優先順序為何。如需詳細資訊,請參閱新增群組至使用者集區。
aud
-
對您的使用者進行身分驗證的使用者集區應用程式用戶端。Amazon Cognito 會在存取權杖
client_id
宣告中呈現相同的值。 identities
-
使用者的
identities
屬性內容。此屬性包含您藉由聯合登入或將聯合身分使用者連結至本機設定檔,連結至使用者的每一個第三方身分提供者設定檔的相關資訊。此資訊包含其提供者名稱、提供者唯一 ID 和其他中繼資料。 token_use
-
權杖的用途。在 ID 權杖中,其值為
id
。 auth_time
-
您的使用者完成身分驗證的身分驗證時間 (以 Unix 時間格式表示)。
exp
-
使用者權杖到期的到期時間 (以 Unix 時間格式表示)。
iat
-
Amazon Cognito 發行您使用者權杖的時間 (採用 Unix 時間格式)。
jti
-
的唯一識別符JWT。
ID 權杖可以包含OIDC標準宣告 中OIDC定義的標準宣告
注意
使用者集區自訂屬性一律以 開頭custom:
。
ID 權杖簽章
ID 權杖的簽章是根據JWT權杖的標頭和承載來計算。在您接受應用程式收到的任何 ID 權杖中的宣告之前,請先驗證權杖的簽章。如需詳細資訊,請參閱驗證 JSON Web 權杖。驗證 JSON Web 權杖。。