使用 Amazon Cognito 驗證終端使用者
在 AWS 上部署應用程式
Dunieski Otano
Amazon Web Services Solutions Architect
要自建登入嗎?
新應用需要完整註冊與登入
團隊打算從零自建驗證
Cognito 已可安全滿足這些需求
User pool 與 identity pool 的差異
User pool
:受管的終端使用者目錄
處理註冊、登入並簽發
權杖
Identity pool
:用登入換取
AWS 認證
搭配使用:先驗證,再授權 AWS 存取
Cognito 的三種權杖
ID token
:描述使用者是誰(身分宣告)
Access token
:描述可呼叫的資源
Refresh token
:免重登即可換新權杖
三者皆為可解碼驗證的
JWT
聯邦身分
Federation
:用外部身分提供者登入
社群:Google、Facebook、Apple
企業:
SAML
與
OIDC
提供者
Cognito 代理信任並簽發自家權杖
將 Cognito 作為 API Gateway 授權器
API Gateway 可使用
Cognito 授權器
用戶端將權杖放在
Authorization 標頭
API Gateway 在後端執行前先驗證權杖
無效或過期權杖會
在邊界被拒絕
典型的登入到 API 呼叫流程
使用者登入
user pool
取得 ID、access、refresh 權杖
用戶端以
access token
呼叫 API Gateway
Cognito 授權器驗證後,後端才執行
常見的 Cognito 誤用
該用 access token 時卻送了
ID token
混淆 user pool 與 identity pool
僅用 user pool 嘗試授權
AWS 存取
在用戶端不安全地儲存權杖
一起來練習吧!
在 AWS 上部署應用程式
Preparing Video For Download...