Mengautentikasi pengguna akhir dengan Amazon Cognito

Mendeploy Aplikasi di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Bangun login sendiri?

  • Aplikasi baru butuh pendaftaran dan masuk penuh
  • Tim mulai membangun autentikasi dari nol
  • Cognito sudah menyediakannya dengan aman

Memilih autentikasi Amazon Cognito terkelola alih-alih membangun login kustom

Mendeploy Aplikasi di AWS

User pool vs identity pool

Cognito User Pool sebagai direktori pengguna yang menerbitkan token di kiri, Identity Pool menukar token tervalidasi dengan kredensial AWS sementara di tengah, layanan AWS di kanan

  • User pool: direktori pengguna akhir terkelola
  • Menangani pendaftaran, masuk, dan menerbitkan token
  • Identity pool: menukar login menjadi AWS credentials
  • Gunakan bersama: autentikasi, lalu otorisasi akses AWS
Mendeploy Aplikasi di AWS

Tiga token Cognito

  • ID token: siapa pengguna (klaim identitas)
  • Access token: apa yang boleh dipanggil pengguna
  • Refresh token: mendapatkan token baru tanpa masuk lagi
  • Ketiganya adalah JWT yang bisa Anda decode dan validasi

Tiga token JWT Cognito berdampingan: ID token dengan klaim identitas, access token dengan cakupan izin API, refresh token berlabel masa panjang untuk pembaruan senyap

Mendeploy Aplikasi di AWS

Identitas terfederasi

  • Federation: masuk dengan penyedia identitas eksternal
  • Sosial: Google, Facebook, Apple
  • Perusahaan: penyedia SAML dan OIDC
  • Cognito menjembatani kepercayaan dan menerbitkan tokennya sendiri

Federasi Cognito: pengguna memilih penyedia sosial (Google, Facebook) atau penyedia SAML/OIDC perusahaan, Cognito memvalidasi login eksternal dan menerbitkan token standarnya sendiri

Mendeploy Aplikasi di AWS

Cognito sebagai authorizer API Gateway

API Gateway Cognito authorizer: klien mengirim header Authorization dengan access token, gateway memvalidasi terhadap user pool sebelum Lambda berjalan, token tidak valid ditolak dengan 401

  • API Gateway dapat memakai Cognito authorizer
  • Klien mengirim token di Authorization header
  • API Gateway memvalidasi token sebelum backend berjalan
  • Token tidak valid atau kedaluwarsa ditolak di edge
Mendeploy Aplikasi di AWS

Alur umum: masuk hingga panggilan API

  • Pengguna masuk ke user pool
  • Menerima ID, access, dan refresh token
  • Klien memanggil API Gateway dengan access token
  • Cognito authorizer memvalidasi, lalu backend berjalan

Alur masuk hingga panggilan API: pengguna masuk ke user pool dan menerima token, klien mengirim access token ke API Gateway, Cognito authorizer memvalidasinya, Lambda backend dieksekusi

Mendeploy Aplikasi di AWS

Kesalahan umum Cognito

  • Mengirim ID token ke tempat yang butuh access token
  • Tertukar antara user pool dan identity pool
  • Mencoba mengotorisasi AWS access hanya dengan user pool
  • Menyimpan token tidak aman di klien

Kesalahan umum Cognito: mengirim ID token ke API alih-alih access token, tertukar antara user pool dan identity pool, serta menyimpan token tidak aman di klien

Mendeploy Aplikasi di AWS

Ayo berlatih!

Mendeploy Aplikasi di AWS

Preparing Video For Download...