Пули користувачів, пули ідентичностей і JWT

Використання AWS Security для розробників

Rahul Singh

Technical Product Manager

Cognito — це дві служби під однією назвою

Amazon Cognito

  • Керована ідентичність для користувачів вашого застосунку
  • Одна назва — дві окремі служби

Два запитання над пунктирною межею з написом Amazon Cognito. Усередині — дві сині панелі поряд: пул користувачів як ваш каталог користувачів і пул ідентичностей як брокер облікових даних. Лінії від обох сходяться до пунктирного помаранчевого блока нижче з приміткою, що багато застосунків використовують обидва.

Використання AWS Security для розробників

Cognito — це дві служби під однією назвою

Amazon Cognito

  • Керована ідентичність для користувачів вашого застосунку
  • Одна назва — дві окремі служби

Яка потрібна вам?

  • Вхід і профілі користувачів: пул користувачів
  • Браузер або мобільний звертається до AWS напряму: пул ідентичностей

Два запитання над пунктирною межею з написом Amazon Cognito. Усередині — дві сині панелі поряд: пул користувачів як ваш каталог користувачів і пул ідентичностей як брокер облікових даних. Лінії від обох сходяться до пунктирного помаранчевого блока нижче з приміткою, що багато застосунків використовують обидва.

Використання AWS Security для розробників

Пул користувачів виконує вхід користувачів

Керований каталог користувачів

  • Реєстрація та вхід
  • Скидання пароля
  • Багатофакторна автентифікація

Вертикальна схема: користувач застосунку входить у пул користувачів, що зберігає паролі, і пул повертає коробку з ID‑токеном, токеном доступу та рефреш‑токеном

Використання AWS Security для розробників

Пул користувачів виконує вхід користувачів

Керований каталог користувачів

  • Реєстрація та вхід
  • Скидання пароля
  • Багатофакторна автентифікація

 

У разі успіху — три токени

Вертикальна схема: користувач застосунку входить у пул користувачів, що зберігає паролі, і пул повертає коробку з ID‑токеном, токеном доступу та рефреш‑токеном

Використання AWS Security для розробників

Пул користувачів виконує вхід користувачів

Керований каталог користувачів

  • Реєстрація та вхід
  • Скидання пароля
  • Багатофакторна автентифікація

 

У разі успіху — три токени

  • ID‑токен: хто користувач
  • Токен доступу: до чого він має доступ
  • Рефреш‑токен: оновити пізніше

Вертикальна схема: користувач застосунку входить у пул користувачів, що зберігає паролі, і пул повертає коробку з ID‑токеном, токеном доступу та рефреш‑токеном

Використання AWS Security для розробників

Пул ідентичностей видає облікові дані AWS

Токени — це не облікові дані

  • Підтвердження особи для вашого застосунку
  • Не облікові дані для доступу до служб AWS

 

Пули ідентичностей: довірений токен входить, облікові дані виходять

Вертикальна схема, як у діаграмі пулу користувачів: довірений токен подається в пул ідентичностей, який перевіряє емітента і повертає облікові дані AWS в межах однієї ролі з терміном дії

Використання AWS Security для розробників

Пул ідентичностей видає облікові дані AWS

Токени — це не облікові дані

  • Підтвердження особи для вашого застосунку
  • Не облікові дані для доступу до служб AWS

 

Пули ідентичностей: довірений токен входить, облікові дані виходять

  • Збірка обміняла OIDC‑токен
  • Доказ у вас на руках обмінюють на «перепустку»

Вертикальна схема, як у діаграмі пулу користувачів: довірений токен подається в пул ідентичностей, який перевіряє емітента і повертає облікові дані AWS в межах однієї ролі з терміном дії

Використання AWS Security для розробників

Один застосунок — обидві частини

Браузер використовує обидва

  1. Увійдіть, отримайте токен
  2. Надішліть цей токен до свого API

Bearer‑токен: хто тримає, той і використовує

Вертикальна схема. Браузер входить у пул користувачів, який повертає токен. Далі цей один токен розгалужується: ліворуч — до вашого API, праворуч — до пулу ідентичностей. Пул ідентичностей повертає облікові дані, і саме вони доходять до S3.

Використання AWS Security для розробників

Один застосунок — обидві частини

Браузер використовує обидва

  1. Увійдіть, отримайте токен
  2. Надішліть цей токен до свого API
  3. Обміняйте той самий токен на облікові дані

Вертикальна схема. Браузер входить у пул користувачів, який повертає токен. Далі цей один токен розгалужується: ліворуч — до вашого API, праворуч — до пулу ідентичностей. Пул ідентичностей повертає облікові дані, і саме вони доходять до S3.

Використання AWS Security для розробників

Один застосунок — обидві частини

Браузер використовує обидва

  1. Увійдіть, отримайте токен
  2. Надішліть цей токен до свого API
  3. Обміняйте той самий токен на облікові дані
  4. Дістаньтеся S3 з цими обліковими даними

Токени — у ваш код, облікові дані — до AWS

Вертикальна схема. Браузер входить у пул користувачів, який повертає токен. Далі цей один токен розгалужується: ліворуч — до вашого API, праворуч — до пулу ідентичностей. Пул ідентичностей повертає облікові дані, і саме вони доходять до S3.

Використання AWS Security для розробників

Токен — це текст із підписом

Три сегменти, з'єднані крапками й підписані Header, Payload і Signature. На payload — відкритий замок, а дужка під першими двома сегментами показує, доки сягає підпис.

JWT: JSON Web Token

  • Claims: позначені твердження про користувача
Використання AWS Security для розробників

Токен — це текст із підписом

Три сегменти, з'єднані крапками й підписані Header, Payload і Signature. На payload — відкритий замок, а дужка під першими двома сегментами показує, доки сягає підпис.

JWT: JSON Web Token

  • Claims: позначені твердження про користувача
  • Закодований, не зашифрований
  • Будь‑хто може прочитати і змінити
Використання AWS Security для розробників

Перевіряйте, перш ніж читати

Спочатку — перевірка

  • JWKS: JSON Web Key Set, публічні ключі підпису емітента
  • Підпис перевіряють цими ключами

Вертикальна «брама». Токен прибуває і проходить чотири послідовні перевірки з галочками: підпис, емітент, аудиторія та строк дії. Публічні ключі емітента підживлюють перевірку підпису збоку, і лише після четвертої перевірки шлях доходить до зеленої зони для читання claims.

Використання AWS Security для розробників

Перевіряйте, перш ніж читати

Спочатку — перевірка

  • JWKS: JSON Web Key Set, публічні ключі підпису емітента
  • Підпис перевіряють цими ключами

 

Потім — три поля

  • iss: ваш пул користувачів
  • aud в ID‑токені, client_id у токені доступу
  • exp: ще дійсний

Вертикальна «брама». Токен прибуває і проходить чотири послідовні перевірки з галочками: підпис, емітент, аудиторія та строк дії. Публічні ключі емітента підживлюють перевірку підпису збоку, і лише після четвертої перевірки шлях доходить до зеленої зони для читання claims.

Використання AWS Security для розробників

Перевірений токен усе ще може бути не тим

Дві узгоджені картки поряд. Картка ID‑токена позначена як токен ідентичності, показує client ID в полі audience і має примітку, що не містить scope, над сірим блоком «хто користувач». Картка токена доступу позначена як access token, показує client ID у власному полі client identifier і має scope, над помаранчевим блоком «що дозволено викликати». Пунктирна смуга під обома картками зазначає, що поле Cognito groups є в обох токенах.

Перевірений, але все ще не той токен

Використання AWS Security для розробників

Перевірений токен усе ще може бути не тим

Дві узгоджені картки поряд. Картка ID‑токена позначена як токен ідентичності, показує client ID в полі audience і має примітку, що не містить scope, над сірим блоком «хто користувач». Картка токена доступу позначена як access token, показує client ID у власному полі client identifier і має scope, над помаранчевим блоком «що дозволено викликати». Пунктирна смуга під обома картками зазначає, що поле Cognito groups є в обох токенах.

Перевірений, але все ще не той токен

token_use вказує тип

  • cognito:groups є в обох типах і не є scope

  • scope: що токен може викликати

  • sub: який користувач, і це значення незмінне
  • Ідентичність — не дозвіл
Використання AWS Security для розробників

Давайте потренуємось!

Використання AWS Security для розробників

Preparing Video For Download...