Amazon Cognito ile son kullanıcı kimlik doğrulama

AWS'de Uygulama Dağıtımı

Dunieski Otano

Amazon Web Services Solutions Architect

Kendi girişini mi kuracaksın?

  • Yeni bir uygulama tam kayıt ve girişe ihtiyaç duyar
  • Ekip kimlik doğrulamayı sıfırdan kurmaya başlar
  • Cognito bunu zaten güvenli biçimde yapar

Özel bir giriş yerine yönetilen Amazon Cognito kimlik doğrulamasını seçmek

AWS'de Uygulama Dağıtımı

User pool ve identity pool farkı

Sol tarafta belirteçler veren kullanıcı dizini olarak Cognito User Pool, ortada doğrulanmış bir belirteci geçici AWS kimlik bilgileriyle değiştiren Identity Pool, sağda AWS hizmetleri

  • User pool: yönetilen son kullanıcı dizini
  • Kayıt, giriş işlemlerini yapar ve token üretir
  • Identity pool: girişi AWS credentials ile değiştirir
  • Birlikte kullan: önce kimlik doğrula, sonra AWS erişimini yetkilendir
AWS'de Uygulama Dağıtımı

Üç Cognito token'ı

  • ID token: kullanıcının kim olduğu (kimlik iddiaları)
  • Access token: kullanıcının neyi çağırabileceği
  • Refresh token: yeniden giriş yapmadan yeni token al
  • Üçü de kodlayıp doğrulayabileceğin JWT'dir

Yan yana üç Cognito JWT token: kimlik iddiaları içeren ID token, API izin kapsamları olan access token, sessiz yenileme için uzun ömürlü refresh token

AWS'de Uygulama Dağıtımı

Birleşik kimlik (Federated identity)

  • Federation: harici bir kimlik sağlayıcıyla giriş
  • Sosyal: Google, Facebook, Apple
  • Kurumsal: SAML ve OIDC sağlayıcıları
  • Cognito güveni aracılar ve kendi token'larını verir

Cognito federation: kullanıcı sosyal (Google, Facebook) veya kurumsal SAML/OIDC sağlayıcısını seçer, Cognito harici girişi doğrular ve kendi standart token'larını verir

AWS'de Uygulama Dağıtımı

API Gateway yetkilendiricisi olarak Cognito

API Gateway Cognito yetkilendiricisi: istemci access token ile Authorization başlığını gönderir, ağ geçidi Lambda çalışmadan önce user pool'a karşı doğrular, geçersiz token'lar 401 ile reddedilir

  • API Gateway bir Cognito authorizer kullanabilir
  • İstemci token'ını Authorization header içinde gönderir
  • API Gateway, arka uç çalışmadan önce token'ı doğrular
  • Geçersiz veya süresi dolmuş token'lar uçta reddedilir
AWS'de Uygulama Dağıtımı

Tipik: giriş → API çağrısı akışı

  • Kullanıcı user pool'a giriş yapar
  • ID, access ve refresh token alır
  • İstemci access token ile API Gateway'i çağırır
  • Cognito authorizer doğrular, sonra arka uç çalışır

Girişten API çağrısına akış: kullanıcı user pool'a giriş yapar ve token alır, istemci access token'ı API Gateway'e gönderir, Cognito authorizer doğrular, arka uç Lambda yürütülür

AWS'de Uygulama Dağıtımı

Yaygın Cognito hataları

  • ID token'ı access token gereken yerde göndermek
  • User pool ile identity pool'u karıştırmak
  • Yalnızca user pool ile AWS access yetkilendirmeye çalışmak
  • Token'ları istemcide güvensiz saklamak

Yaygın Cognito hataları: access token yerine API'ye ID token göndermek, user pool ve identity pool'u karıştırmak ve token'ları istemcide güvensiz saklamak

AWS'de Uygulama Dağıtımı

Hadi pratik yapalım!

AWS'de Uygulama Dağıtımı

Preparing Video For Download...