Pule użytkowników, pule tożsamości i tokeny JWT

Bezpieczeństwo AWS dla deweloperów

Rahul Singh

Technical Product Manager

Cognito to dwie usługi pod jedną nazwą

Amazon Cognito

  • Zarządzana tożsamość użytkowników twojej aplikacji
  • Jedna nazwa, dwie oddzielne usługi

Nad przerywaną granicą oznaczoną jako Amazon Cognito widnieją dwa pytania. Wewnątrz granicy znajdują się obok siebie dwa niebieskie panele: pula użytkowników, opisana jako katalog użytkowników, oraz pula tożsamości, opisana jako pośrednik poświadczeń. Linie z obu paneli prowadzą do przerywanego pomarańczowego pola poniżej, informującego, że wiele aplikacji korzysta z obu.

Bezpieczeństwo AWS dla deweloperów

Cognito to dwie usługi pod jedną nazwą

Amazon Cognito

  • Zarządzana tożsamość użytkowników twojej aplikacji
  • Jedna nazwa, dwie oddzielne usługi

Której usługi potrzebujesz?

  • Logowanie i profile użytkowników: pula użytkowników
  • Przeglądarka lub aplikacja mobilna wywołująca AWS bezpośrednio: pula tożsamości

Nad przerywaną granicą oznaczoną jako Amazon Cognito widnieją dwa pytania. Wewnątrz granicy znajdują się obok siebie dwa niebieskie panele: pula użytkowników, opisana jako katalog użytkowników, oraz pula tożsamości, opisana jako pośrednik poświadczeń. Linie z obu paneli prowadzą do przerywanego pomarańczowego pola poniżej, informującego, że wiele aplikacji korzysta z obu.

Bezpieczeństwo AWS dla deweloperów

Pula użytkowników loguje użytkowników

Zarządzany katalog użytkowników

  • Rejestracja i logowanie
  • Resetowanie hasła
  • Uwierzytelnianie wieloskładnikowe

Schemat pionowy: użytkownik aplikacji loguje się do puli użytkowników przechowującej hasła, a pula zwraca pole zawierające token ID, token dostępu i token odświeżania

Bezpieczeństwo AWS dla deweloperów

Pula użytkowników loguje użytkowników

Zarządzany katalog użytkowników

  • Rejestracja i logowanie
  • Resetowanie hasła
  • Uwierzytelnianie wieloskładnikowe

 

Po sukcesie: trzy tokeny

Schemat pionowy: użytkownik aplikacji loguje się do puli użytkowników przechowującej hasła, a pula zwraca pole zawierające token ID, token dostępu i token odświeżania

Bezpieczeństwo AWS dla deweloperów

Pula użytkowników loguje użytkowników

Zarządzany katalog użytkowników

  • Rejestracja i logowanie
  • Resetowanie hasła
  • Uwierzytelnianie wieloskładnikowe

 

Po sukcesie: trzy tokeny

  • Token ID: kim jest użytkownik
  • Token dostępu: co może wywołać
  • Token odświeżania: pozwala uzyskać nowe tokeny później

Schemat pionowy: użytkownik aplikacji loguje się do puli użytkowników przechowującej hasła, a pula zwraca pole zawierające token ID, token dostępu i token odświeżania

Bezpieczeństwo AWS dla deweloperów

Pula tożsamości wydaje poświadczenia AWS

Tokeny to nie poświadczenia

  • Dowód tożsamości dla twojej aplikacji
  • Nie poświadczenia dostępu do usług AWS

 

Pule tożsamości: zaufany token na wejściu, poświadczenia na wyjściu

Schemat pionowy o tej samej strukturze co diagram puli użytkowników: zaufany token trafia do puli tożsamości, która sprawdza wystawcę i zwraca poświadczenia AWS ograniczone do jednej roli, z określonym czasem ważności

Bezpieczeństwo AWS dla deweloperów

Pula tożsamości wydaje poświadczenia AWS

Tokeny to nie poświadczenia

  • Dowód tożsamości dla twojej aplikacji
  • Nie poświadczenia dostępu do usług AWS

 

Pule tożsamości: zaufany token na wejściu, poświadczenia na wyjściu

  • Zadanie kompilacyjne wymieniło token OIDC
  • Dowód, który posiadasz, wymieniony na kartę dostępu

Schemat pionowy o tej samej strukturze co diagram puli użytkowników: zaufany token trafia do puli tożsamości, która sprawdza wystawcę i zwraca poświadczenia AWS ograniczone do jednej roli, z określonym czasem ważności

Bezpieczeństwo AWS dla deweloperów

Jedna aplikacja, obie części

Przeglądarka korzystająca z obu

  1. Logowanie i otrzymanie tokenu
  2. Wysłanie tokenu do twojego API

Token nośny: kto go ma, ten z niego korzysta

Schemat pionowy. Przeglądarka loguje się do puli użytkowników, która zwraca token. Ten jeden token rozdziela się na dwie ścieżki: w lewo do twojego API i w prawo do puli tożsamości. Pula tożsamości zwraca poświadczenia, i to one docierają do S3.

Bezpieczeństwo AWS dla deweloperów

Jedna aplikacja, obie części

Przeglądarka korzystająca z obu

  1. Logowanie i otrzymanie tokenu
  2. Wysłanie tokenu do twojego API
  3. Wymiana tego samego tokenu na poświadczenia

Schemat pionowy. Przeglądarka loguje się do puli użytkowników, która zwraca token. Ten jeden token rozdziela się na dwie ścieżki: w lewo do twojego API i w prawo do puli tożsamości. Pula tożsamości zwraca poświadczenia, i to one docierają do S3.

Bezpieczeństwo AWS dla deweloperów

Jedna aplikacja, obie części

Przeglądarka korzystająca z obu

  1. Logowanie i otrzymanie tokenu
  2. Wysłanie tokenu do twojego API
  3. Wymiana tego samego tokenu na poświadczenia
  4. Dostęp do S3 za pomocą tych poświadczeń

Tokeny dla twojego kodu, poświadczenia dla AWS

Schemat pionowy. Przeglądarka loguje się do puli użytkowników, która zwraca token. Ten jeden token rozdziela się na dwie ścieżki: w lewo do twojego API i w prawo do puli tożsamości. Pula tożsamości zwraca poświadczenia, i to one docierają do S3.

Bezpieczeństwo AWS dla deweloperów

Token to tekst z podpisem

Trzy segmenty połączone kropkami, oznaczone jako Nagłówek, Ładunek i Podpis. Na ładunku znajduje się otwarta kłódka, a klamra pod pierwszymi dwoma segmentami pokazuje zasięg podpisu.

JWT: JSON Web Token

  • Oświadczenia: oznaczone informacje o użytkowniku
Bezpieczeństwo AWS dla deweloperów

Token to tekst z podpisem

Trzy segmenty połączone kropkami, oznaczone jako Nagłówek, Ładunek i Podpis. Na ładunku znajduje się otwarta kłódka, a klamra pod pierwszymi dwoma segmentami pokazuje zasięg podpisu.

JWT: JSON Web Token

  • Oświadczenia: oznaczone informacje o użytkowniku
  • Zakodowany, nie zaszyfrowany
  • Każdy może go odczytać i każdy może go zmienić
Bezpieczeństwo AWS dla deweloperów

Najpierw zweryfikuj, potem odczytaj

Najpierw weryfikacja

  • JWKS: JSON Web Key Set, publiczne klucze podpisujące wystawcy
  • Podpis sprawdzany względem tych kluczy

Pionowy diagram bramek. Token przechodzi po kolei przez cztery zaznaczone kontrole: podpis, wystawcę, odbiorcę i datę wygaśnięcia. Publiczne klucze wystawcy zasilają kontrolę podpisu z boku, a dopiero po czwartej kontroli ścieżka dociera do zielonego pola odczytu oświadczeń.

Bezpieczeństwo AWS dla deweloperów

Najpierw zweryfikuj, potem odczytaj

Najpierw weryfikacja

  • JWKS: JSON Web Key Set, publiczne klucze podpisujące wystawcy
  • Podpis sprawdzany względem tych kluczy

 

Następnie trzy oświadczenia

  • iss: twoja pula użytkowników
  • aud w tokenie ID, client_id w tokenie dostępu
  • exp: wciąż aktualny

Pionowy diagram bramek. Token przechodzi po kolei przez cztery zaznaczone kontrole: podpis, wystawcę, odbiorcę i datę wygaśnięcia. Publiczne klucze wystawcy zasilają kontrolę podpisu z boku, a dopiero po czwartej kontroli ścieżka dociera do zielonego pola odczytu oświadczeń.

Bezpieczeństwo AWS dla deweloperów

Zweryfikowany token wciąż może być niewłaściwy

Dwie dopasowane karty obok siebie. Karta tokenu ID oznaczona jako token tożsamości pokazuje identyfikator klienta zawarty w oświadczeniu odbiorcy i zaznacza, że nie zawiera zakresu, nad szarym polem określającym, kim jest użytkownik. Karta tokenu dostępu oznaczona jako token dostępu pokazuje identyfikator klienta zawarty we własnym oświadczeniu identyfikatora klienta i zaznacza, że zawiera zakres, nad pomarańczowym polem określającym, co może wywołać. Przerywany pasek pod obiema kartami informuje, że oświadczenie grup Cognito występuje w obu tokenach.

Zweryfikowany, a mimo to niewłaściwy token

Bezpieczeństwo AWS dla deweloperów

Zweryfikowany token wciąż może być niewłaściwy

Dwie dopasowane karty obok siebie. Karta tokenu ID oznaczona jako token tożsamości pokazuje identyfikator klienta zawarty w oświadczeniu odbiorcy i zaznacza, że nie zawiera zakresu, nad szarym polem określającym, kim jest użytkownik. Karta tokenu dostępu oznaczona jako token dostępu pokazuje identyfikator klienta zawarty we własnym oświadczeniu identyfikatora klienta i zaznacza, że zawiera zakres, nad pomarańczowym polem określającym, co może wywołać. Przerywany pasek pod obiema kartami informuje, że oświadczenie grup Cognito występuje w obu tokenach.

Zweryfikowany, a mimo to niewłaściwy token

token_use wskazuje rodzaj tokenu

  • cognito:groups występuje w obu rodzajach i nie jest zakresem

  • scope: co token może wywołać

  • sub: który użytkownik, nigdy się nie zmienia
  • Tożsamość to nie uprawnienie
Bezpieczeństwo AWS dla deweloperów

Czas na praktykę!

Bezpieczeństwo AWS dla deweloperów

Preparing Video For Download...