Hướng dẫn cấu hình đăng nhập Cognito AWS thông qua OAuth2 Azure
Sơ lược về Cognito: Amazon Cognito là dịch vụ của Amazon Web Services cung cấp xác thực, ủy quyền và quản lý người dùng cho các ứng dụng web và di động của bạn. Người dùng có thể đăng nhập trực tiếp bằng tên người dùng và mật khẩu hoặc thông qua bên thứ ba như Facebook, Amazon, Google hoặc Apple.
Prerequisite:
- Cognito App trên AWS: https://aws.amazon.com/cognito/
- Account Azure: https://portal.azure.com/
I. Cấu hình trên Azure
-
Chọn Single sign-on, sau đó chọn SAML
-
Ở step 1, chọn edit
-
Identifier (Entity ID), điền User Pool Id từ Cognito theo định dạng sau
urn:amazon:cognito:sp:<yourUserPoolID>
- Reply URL điền theo định dạng:
https://<yourDomainPrefix>.auth.<yourRegion>.amazoncognito.com/saml2/idpresponse
vàhttps://<yourDomainPrefix>.auth.<yourRegion>.amazoncognito.com/oauth2/idpresponse
- Điền Logout URL (optional), đây là
- Lưu lại cấu hình và download meta file ở Step 3
- Ở bước tiếp theo, ta thêm user email vào azure, những email đã được thêm vào Azure app mới có thể login bằng azure. Vào "Users and groups", chọn Add user/group
- Chọn None Selected
- Điền user email và chọn select, sau đó nhấn Assign
II. Cấu hình trên Azure Cognito
- Vào Amazon Cogino, chọn User pools, chọn pool đã tạo
- Chọn Sign-in experience
- Ở block Federated identity provider sign-in, chọn Add identity provider
- Chọn option SAML, sau đó nhập provider name và upload meta document (upload file đã download trước đó từ Azure)
- Ở block Map attributes between your SAML provider and your user pool, nhập attributes, ở đây mình điền User pool attribute mặc định là
email
và SAML attribute làhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
- Sau đó click Add identity provider để lưu
- Tiếp đến là chúng ta sẽ kích hoạt login bằng SAML đã config ở trên. Chọn tab
App Integration
, ở blockApp clients and analytics
chọn app client đã tạo
- Giao diện App client
- Chọn edit
Hosted UI
, chúng ta điềnAllowed callback URLs
vàAllowed sign-out URLs - optional
- Tiếp đến ở block
Identity providers
, thêm app Azure đã tạo, ở đây mình đã có app Google đã tạo trước đó:
- Chọn tiếp các config dưới đây và lưu lại cấu hình
III. Kiểm tra
- Ở Cognito ở tab
Hosted UI
chọnView Hosted UI
- Login bằng Microsoft
- Nếu Login thành công Cognito sẽ redirect về url mà bạn đã config ở Cognito với query string ?code=XXX, sau đó bạn có thể dùng code để lấy access_token, id_token, refresh_token... (tài liệu: tại đây)
Mình đã hướng dẫn các bạn setup login với Azure thông qua Cognito, hẹn gặp các bạn ở các series tiếp theo
Cảm ơn các bạn đã đọc.
All rights reserved