2016-01-18 15 views
5

Szukałem różnych usług AWS do obsługi infrastruktury dla naszego kolejnego dużego projektu. Zaczęliśmy przeglądać kontenery dokowane w instancjach EC2, ale po bardziej szczegółowym spojrzeniu na AWS Lambda - wydaje się, że jest to godna droga do odkrycia.Uwierzytelnienie użytkownika (rejestracja i logowanie) w AWS z Lambdą, Cognito lub IAM

Korzystając z paradygmatu AWS Lambda, użyjemy po prostu funkcji Lambda jako logicznego kleju do przechowywania danych i zdarzeń (z innych usług AWS) razem.

Na przykład, jeśli użytkownik naszego produktu tworzy nowy rekord, AWS Lambda może zostać wywołany w tym zdarzeniu i możemy wywołać funkcję lambda, aby dodać ten rekord do AWS Cloudsearch, dzięki czemu nasze aktualizacje są aktualne.

Jestem trochę niepewny, jeśli chodzi o zarządzanie użytkownikami, uwierzytelnianie itd. W ramach tego rodzaju paradygmatu. Czytałem dokumentację dotyczącą IAM i Cognito w poszukiwaniu usługi AWS do odciążenia rejestracji użytkownika, logowania, wylogowania, zapomnienia hasła itp. Nie wydaje się, że właśnie do tego służą te usługi. IAM to zarządzanie tożsamością dla organizacji (nie baza użytkowników), a cognito koncentruje się bardziej na synchronizowaniu informacji o tożsamości na wielu urządzeniach lub instancjach aplikacji (po uwierzytelnieniu).

Obecnie zastanawiam się, czy to, co powinienem robić, to pisanie rejestracji, logowania, zapomnienia hasła itp. Jako funkcji lambda? lub czy istnieje jakieś rozwiązanie lub zestaw rozwiązań w stosie AWS, który porysowałby ten konkretny świst?

Odpowiedz

7

Możesz użyć your own authentication system w Cognito, a następnie użyć AMI do autoryzacji, nawet dla swojej bazy użytkowników.

  • Po uwierzytelnieniu użytkownika (ewentualnie w funkcji Lambda nazwie poprzez API Brama), będziesz retrieve or create in Cognito an identity ID associated to the user użyciu GetOpenIdTokenForDeveloperIdentity.
  • Następnie otrzymasz token Cognito OpenId, który możesz dać uwierzytelnionemu użytkownikowi.
  • Użytkownik może użyć tego tokena, aby uzyskać temporary AWS credentials skojarzony z rolą IAM. Możesz dać dostęp do niektórych zasobów AWS dla uwierzytelnionych użytkowników: GetCredentialsForIdentity.
  • Gdy użytkownik wywołuje zasobów AWS używając tych poświadczeń, masz dostęp do jego tożsamości Cognito poprzez kontekście (przykłady z Lambda, API Gateway lub S3)
  • Wreszcie można find the user associated to this Cognito identity w systemie za pomocą LookupDeveloperIdentity.

Sprawdź authentication flow i some more examples

Powiązane problemy