自訂身分驗證挑戰 Lambda 觸發程序 - Amazon Cognito

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

自訂身分驗證挑戰 Lambda 觸發程序

當您為 Amazon Cognito 使用者集區建置身分驗證流程時,您可能會發現想要將身分驗證模型延伸到內建流程之外。自訂挑戰觸發程序的一個常見使用案例是實作使用者名稱、密碼和多重要素驗證 () 以外的其他安全性檢查MFA。自訂挑戰是您可以使用 Lambda 支援的程式設計語言產生的任何問題和回應。例如,您可能想要在允許使用者進行身分驗證之前,要求使用者解決 CAPTCHA或回答安全問題。另一個潛在需求是與專門的身分驗證因素或裝置整合。或者,您可能已經開發了使用硬體安全金鑰或生物識別裝置來驗證使用者的軟體。自訂挑戰的身分驗證成功定義是 Lambda 函數接受為正確的任何答案:例如固定字串,或外部 的滿意回應API。

您可以使用自訂挑戰開始身分驗證,並完全控制身分驗證程序,或者您可以在應用程式收到自訂挑戰之前執行使用者名稱密碼身分驗證。

自訂身分驗證挑戰 Lambda 觸發條件:

定義

啟動挑戰序列。決定您是否要啟動新的挑戰、將身分驗證標記為完成,或停止身分驗證嘗試。

建立

向您的應用程式發出使用者必須回答的問題。此函數可能會顯示安全問題或應用程式CAPTCHA應顯示給使用者的連結。

驗證

知道預期的答案,並將其與應用程式在挑戰回應中提供的答案進行比較。函數可能會呼叫 API CAPTCHA服務的 ,以擷取使用者嘗試解決方案的預期結果。

這三個 Lambda 函數會串連在一起,以呈現完全在您控制範圍內且屬於您自己的設計的身分驗證機制。由於自訂身分驗證需要用戶端和 Lambda 函數中的應用程式邏輯,因此您無法在託管 UI 中處理自訂身分驗證。此身分驗證系統需要額外的開發人員工作。您的應用程式必須使用使用者集區執行身分驗證流程,API並使用自訂 UI 來處理產生的挑戰,該 會在自訂身分驗證挑戰的中心產生問題。

挑戰 Lambda 觸發程序

如需實作自訂身分驗證的詳細資訊,請參閱 自訂身分驗證流程與挑戰

API 操作InitiateAuthAdminInitiateAuth、 和 RespondToAuthChallenge或 之間的身分驗證AdminRespondToAuthChallenge。在此流程中,使用者身分驗證會透過回答連續挑戰,直到驗證失敗或者使用者發出字符為止。挑戰回應可能是新的挑戰。在這種情況下,您的應用程式會視需要回應新挑戰的次數。當定義身分驗證挑戰函數分析到目前為止的結果、確定所有挑戰都已回答,並傳回 時,就會發生成功的身分驗證IssueTokens