Amazon Cognito 功能

什麼是 Amazon Cognito?

Amazon Cognito 是一項以開發人員為中心且經濟高效的客戶身分和存取管理 (CIAM) 服務。該服務提供可擴展至數百萬使用者的安全身分儲存體和聯合身分驗證選項。Amazon Cognito 支援使用社交身分供應商和以 SAML 或 OIDC 為基礎的身分供應商進行登入,以獲取令人愉悅的客戶體驗,並提供進階安全功能來保護您的客戶和業務。此外還支援各種合規標準,依據開放的身分標準 (OAuth2.0、SAML 2.0 和 OpenID Connect) 運作,並與前端和後端開發資源和 SDK 程式庫的延伸生態系統整合。

使用者身分驗證

Amazon Cognito 為使用者註冊和登入,提供一個可自訂的內建 UI。您可以使用 Android、iOS 和適用於 Amazon Cognito 的 JavaScript SDK,將使用者註冊和登入頁面新增到您的應用程式。

您可以透過在 Amazon Cognito 使用者集區中啟用 MFA,來為客戶提供額外的一層安全機制。使用者可使用 SMS 或以時間為基礎的單次密碼 (TOTP) 產生器 (例如 Google Authenticator) 驗證其身分。Amazon Cognito 還支援在不同的使用者集區上設定不同的密碼規則。

作為聯合中心,Amazon Cognito 讓使用者能夠透過社交身分供應商 (例如 Apple、Facebook、Google 和 Amazon),以及透過 SAML 和 OIDC 的企業身分供應商登入。Amazon Cognito 是以標準為基礎的身分供應商。您的使用者登入 Amazon Cognito (透過本機身分驗證或外部聯合身分驗證) 後,即可使用 OAuth/OIDC 存取聯合資源。

Amazon Cognito 使用者集區可讓您建立自訂身份驗證流程,該流程使用 Lambda 函數根據一個或多個挑戰-回應週期來驗證使用者。您可以使用此流程來實作以自訂挑戰為基礎的無密碼驗證,或將自訂挑戰作為其他因素。

使用 lambda 觸發程式來自訂 Cognito 行為,包括使用者生命週期階段,如驗證前後、登入前後或權杖簽發之前。您也可以使用 lambda 觸發程式來自訂在不同階段傳送給使用者的訊息,或與第三方電子郵件和 SMS 供應商整合的訊息。

身分管理

客戶對您網站的第一次體驗通常需要完成自我註冊程序。Amazon Cognito 提供可自訂、預先封裝的託管使用者介面以快速進入市場,並提供一組強大的 API 以建置完全自訂的自我註冊解決方案。使用者可使用應用程式的電子郵件、電話號碼或使用者名稱進行註冊。自我註冊程序讓使用者能夠檢視和更新其個人檔案資料,包括自訂屬性。使用自助式選項減少了服務台呼叫,例如透過簡訊或電子郵件重設密碼。

Amazon Cognito 提供可擴展至數百萬使用者的安全身分儲存體 (使用者集區)。使用者集區為直接註冊的使用者,以及使用外部身分供應商註冊的聯合身分使用者,安全地儲存使用者個人檔案資料。
Amazon Cognito 身分儲存體是以 API 為基礎的使用者儲存庫。儲存庫和 API 支援每個使用者最多儲存 50 個自訂屬性,支援不同的資料類型,並強制執行長度和可變性條件約束。選取使用者在完成註冊程序之前必須提供的必要屬性。

使用者可使用批次匯入或即時 (JIT) 遷移,以遷移至 Amazon Cognito。批次使用者遷移將善用 CSV 檔案匯入程序。使用 JIT 遷移程序,AWS Lambda 觸發器會將遷移程序整合至註冊工作流程中,並且可保留使用者的密碼。

Amazon Cognito 透過多租用戶的支援,實現了 B2B 的互動。您可以選擇重複使用應用程式整合、存取權和密碼政策,或實施完整的租用戶隔離。

存取控制

Amazon Cognito 保障與應用程式最後一英里的整合。Amazon Application Load Balancer (ALB) 和 Amazon API Gateway 具有內建的政策執行點,可提供以 Amazon Cognito 為基礎的字符和範圍的存取。

Amazon Cognito 的憑證代理程式 (也稱為 Amazon Cognito 身分池) 提供對 AWS 資源的單一登入存取,例如 Amazon DynamoDB、Amazon S3 儲存貯體、Lambda 無伺服器元件和其他 Amazon 服務。使用者可動態映射至不同的角色,以支援對服務的最低權限存取。

Amazon Cognito 使用 OAuth 用戶端憑證流,來提供機器對機器的身分驗證,並確保應用程式元件之間的安全體驗。

以 OAuth 2.0 範圍和聲明的形式來擴充存取字符的功能。您可以使用存取字符中的自訂屬性來做出應用程式特定的進階授權決策。此功能還能讓您對終端使用者體驗進行個人化,提升客戶參與度。 

客戶體驗

使用資料驅動的方法來推動客戶獲取和保留。使用 Amazon Pinpoint 啟動客戶拓展活動並追蹤參與度。Amazon Pinpoint 為以 Amazon Cognito 為基礎的使用者活動提供分析,而 Amazon Cognito 則豐富了 Pinpoint 活動的使用者資料。

AWS Amplify 是一組專門建置的工具和功能,讓前端 Web 和行動開發人員可以快速輕鬆地在 AWS 上建置完整堆疊應用程式,並且靈活地利用廣泛的 AWS 服務以因應使用案例的發展。藉助 Amplify,您可以使用 Amazon Cognito 在幾分鐘內設定 Web 或行動應用程式後端並連線您的應用程式,以視覺方式建置 Web 前端 UI,以及在 AWS Console 外部輕鬆管理應用程式內容。更快速交付並且輕鬆擴展 – 不需要雲端專業技能。

CIAM 解決方案是定製解決方案。Amazon Cognito 提供一組強大的掛鉤和延伸,來完全自訂身分驗證、註冊和使用者遷移流程。例如,可透過自訂身分證明和帳戶驗證檢查,來增強自我註冊流程,並且可延伸至登入程序,以建立自訂身分驗證流程或在產生字符之前對其進行修改。

Amazon Cognito SDK 可使用 Java、C++、PHP、Python、Golang、Ruby、.NET 和 JavaScript。

進階安全

透過與 Amazon Web Application Firewall (AWS WAF) 的原生整合,Amazon Cognito 提供進階機器人偵測功能,可協助您的組織免於為自動化帳戶付費。

Amazon Cognito 可即時偵測和防止在使用者註冊、登入或變更密碼時重複使用遭入侵的憑證。當 Amazon Cognito 偵測到使用者輸入的登入資料在其他地方遭到盜用,便會要求他們變更密碼。

透過自適應身分驗證,保護您的使用者帳戶並增強其登入體驗。當 Amazon Cognito 偵測到不尋常的活動時 (如嘗試從新的位置和裝置登入),將給予一個風險分數,讓您選擇要求使用者提出額外驗證,或者封鎖登入請求。

稽核與合規

Amazon Cognito 符合多項安全與合規要求,包含醫療保健公司和商店等高度管制組織。Amazon Cognito 符合 HIPAA 規範,且符合 PCI DSS、SOC 和 ISO/IEC 27001、ISO/IEC 27017、ISO/IEC 27018 和 ISO 9001 標準。

Amazon Cognito 支援使用 AWS CloudTrail、Amazon CloudWatch 指標和 Amazon CloudWatch Logs Insights 進行監控。藉助 CloudTrail,您可以從 Amazon Cognito 主控台擷取 API 呼叫,以及從程式碼呼叫到 Amazon Cognito API 操作的過程。您可以使用 CloudWatch 指標,在近乎即時的情況下監控、報告和採取自動操作。使用 CloudWatch Logs Insights,您可以將 CloudTrail 設定為將事件傳送至 CloudWatch,以監控 Amazon Cognito 日誌檔案。