Site icon Mr. 沙先生

AWS Cognito User Pool vs. Identity Pool 使用筆記

這篇主要是針對 AWS Cognito 做的筆記,也介紹給對 Cognito 想深入了解的人

關於 AWS Cognito 基本介紹

AWS Cognito 這個服務的訴求是「簡單、安全的使用者註冊、登入和存取控制」基本上就是讓開發者不用自己去刻一個登入認證系統,或者是少掉使用者的管理,透過 AWS Managed Service 的優勢讓產品可以快速上線。

AWS Cognito 主要功能

Cognito 主要分為兩個功能,一是「User Pool」一是「Identity Pool」這兩個如果不先弄清楚很容易搞混 …

另外還有 Cognito Sync,不過已經被 AppSync 取代了。

Cognito User Pool 功能

主要提供身份驗證,所以基本的 User、Group 管理都有,文件也有簡單入手的 Getting Started with User Pools

對 Third Party 的支援

對 Custom UI 或是 Hosted UI 的方法

Cognito 內建有提供 Hosted UI 直接使用,也能直接調整一些簡單的畫面需求,預設的 Hosted UI 像這樣:

Custom UI 可以透過既有或客製化的 UI 搭配 Amplify 串接 Cognito 驗證。

對 Custom Auth Authentication 的支援

如果有自訂義的驗證方法,也可以利用 Lambda trigger 做到,參考「Custom Authentication Challenge Lambda Triggers」會用到幾個 trigger flow:

像是 Passwordless Auth 就可以利用 Custom Auth Authentication 做到,參考以下 Github 範例連結,再找時間開一篇解說

更多 Lambda triggers 的支援

參考 Customizing User Pool Workflows with Lambda Triggers 可以找到更多自訂義的需求方案

User Migration 的方法

如果既有 Idp 或是 On-Premises 要遷移到 Cognito 可以透過兩種方法

Cognito Identity Pool (Federated Identities) 功能

Identity Pool 從 Console 上看也稱為 Federated Identities,透過 Identity Pool 可以拿到臨時的 IAM Role STS token 藉此存取 AWS 服務

Use Case

參考官方範例「Common Amazon Cognito Scenarios」可以明顯區分 User Pool 和 Identity Pool 的差別

Cognito 對於資料的保護

由於可能牽涉到個資議題,所以在 Data Protection in Amazon Cognito 這篇特別提到關於資料保護的說明,權責也依照 shared responsibility model 分類:

更多可以參考 Security in Amazon Cognito 文件

與 Cognito 深度整合的 AWS Service

其他

References

Exit mobile version