View a markdown version of this page

使用使用者集區進行身分驗證的須知事項 - Amazon Cognito

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

使用使用者集區進行身分驗證的須知事項

在設計具有 Amazon Cognito 使用者集區的身分驗證模型時,請考慮以下資訊。

受管登入和託管 UI 中的身分驗證流程

相較於傳統託管 UI,受管登入有更多的身分驗證選項。例如,使用者只能在受管登入中執行無密碼和通行金鑰身分驗證。

自訂身分驗證流程僅適用於 AWS SDK 身分驗證

您無法使用受管登入或傳統託管 UI 執行自訂身分驗證流程,或使用 Lambda 觸發程序進行自訂身分驗證。自訂身分驗證可在使用 AWS SDKs身分驗證中使用。

外部身分提供者 (IdP) 登入的受管登入

您無法透過使用 AWS SDKs 進行身分驗證的第三方 IdPs 登入使用者。您必須實作受管登入或傳統託管 UI、重新導向至 IdPs,然後在應用程式中使用 OIDC 程式庫處理產生的身分驗證物件。如需受管登入的詳細資訊,請參閱 使用者集區受管登入。

無密碼身分驗證對其他使用者功能的影響

在您的使用者集區和應用程式用戶端中使用一次性密碼或通行金鑰啟用無密碼登入會影響使用者建立和遷移。啟用無密碼登入時:

  1. 管理員可以建立沒有密碼的使用者。預設邀請訊息範本變更為不再包含{###}密碼預留位置。如需詳細資訊,請參閱建立使用者帳戶為管理員。

  2. 對於以 SDK 為基礎的 SignUp 操作,使用者註冊時不需要提供密碼。受管登入和託管 UI 在註冊頁面中需要密碼,即使允許無密碼身分驗證。如需詳細資訊,請參閱註冊及確認使用者帳戶。

  3. 如果從 CSV 檔案匯入的使用者的屬性包含可用的無密碼登入選項的電子郵件地址或電話號碼,則可以使用無密碼選項立即登入,而無需重設密碼。如需詳細資訊,請參閱從 CSV 檔案將使用者匯入使用者集區。

  4. 無密碼身分驗證不會叫用使用者遷移 Lambda 觸發程序。

  5. 使用一次性密碼 (OTP) 第一要素登入的使用者無法將多重要素驗證 (MFA) 要素新增至其工作階段。使用 設定時,具有使用者驗證的通行金鑰可以滿足 MFA 要求MULTI_FACTOR_WITH_USER_VERIFICATION。

通行密鑰依賴方 URLs 不能在公有字尾清單中

您可以使用您擁有的網域名稱,例如 www.example.com,做為通行密鑰組態中的依賴方 (RP) ID。此組態旨在支援在您擁有的網域上執行的自訂建置應用程式。公有字尾清單或 PSL 包含受保護的高階網域。當您嘗試將 RP URL 設定為 PSL 上的網域時,Amazon Cognito 會傳回錯誤。

身分驗證工作階段流程持續時間

視使用者集區的功能而定,您可以在應用程式從 Amazon Cognito 擷取字符RespondToAuthChallenge之前,回應對 InitiateAuth和 的多項挑戰。Amazon Cognito 會在每個請求的回應中包含一個工作階段字串。如要將您的 API 請求合併至身分驗證流程中,請在每個後續請求中包含來自上一個請求回應的工作階段字串。依預設,您的使用者在工作階段字串到期前,有三分鐘的時間完成每項挑戰。如要調整此期間,請變更您的應用程式用戶端身分驗證流程工作階段持續時間。下列程序說明如何在應用程式用戶端設定中變更此設定。

注意

身分驗證流程工作階段持續時間 設定適用於 Amazon Cognito 使用者集區 API 的身份驗證。受管登入會將工作階段持續時間設定為 3 分鐘以進行多重驗證,並在最終使用者第一次使用臨時密碼登入期間強制變更密碼,設定為 8 分鐘。

Amazon Cognito console
設定應用程式用戶端驗證流程工作階段持續時間 (AWS 管理主控台)
  1. 在使用者集區的 App integration (應用程式整合) 索引標籤,選取 App clients and analytics (應用程式用戶端和分析) 容器的應用程式用戶端名稱。

  2. 在 應用程式用戶端資訊 容器中選擇 編輯。

  3. 對於簡訊和電子郵件 MFA 代碼,將身分驗證流程工作階段持續時間的值變更為您想要的有效持續時間,以分鐘為單位。這也會改變任何使用者在應用程式用戶端中完成任何驗證挑戰的時間長度。

  4. 選擇儲存變更。

User pools API
設定應用程式用戶端驗證流程工作階段持續時間 (Amazon Cognito API)
  1. 使用 DescribeUserPoolClient 請求中現有的使用者集區設定來準備 UpdateUserPoolClient 請求。您的 UpdateUserPoolClient 請求必須包含所有現有的應用程式用戶端屬性。

  2. 將 AuthSessionValidity 的值變更為您要的 SMS MFA 代碼的有效期限 (以分鐘為單位)。這也會改變任何使用者在應用程式用戶端中完成任何驗證挑戰的時間長度。

如需應用程式用戶端的詳細資訊,請參閱 使用應用程式用戶端的應用程式特定設定。

失敗登入嘗試的鎖定行為

使用使用者密碼嘗試登入失敗五次後,無論這些嘗試是使用未經驗證或 IAM 授權的 API 操作請求,Amazon Cognito 都會將您的使用者鎖定一秒鐘。然後,鎖定持續時間會在每增加一次失敗嘗試後加倍,最多可達約 15 分鐘。

在鎖定期間進行的嘗試會產生 Password attempts exceeded 例外狀況,並且不會影響後續鎖定期間的持續時間。對於嘗試登入失敗的累計次數 n (不包括 Password attempts exceeded 例外狀況),Amazon Cognito 會將您的使用者鎖定 2^(n-5) 秒。若要將鎖定重設為 n=0 初始狀態,您的使用者必須在鎖定期間過後成功登入,或是在鎖定後連續 15 分鐘內不得進行任何登入嘗試。此行為可能會有所變更。此行為不適用於自訂挑戰,除非該挑戰也執行以密碼為基礎的身份驗證。