Проектирование логики аутентификации и авторизации: cookies, JWT, SSO, OAuth 2.0.

preview_player
Показать описание
Приглашенные гости:
Зоя Степчёва и Виталий Сергеев

Таймкоды:
00:00 Вводная часть
01:15 План доклада Зои Степчевой
01:48 Чем идентификация, авторизация и аутентификация отличаются друг от друга
05:13 Что такое OAuth 2.0
06:51 Роли в спецификации OAuth 2.0
08:37 Схема последовательности процессов при осуществлении процедуры авторизации
10:44 Серверная авторизация OAuth 2.0
13:14 Токены доступа JWT
16:18 Приемы использования в Postman
24:56 Вопросы к Зое
25:01 Нужен ли OAuth 2.0 если интеграции в компании только внутренние?
26:45 Чем access токен отличается от API-токен?
28:05 Про Bearer Token
29:08 Bearer token нельзя использовать/расшифровывать как JWT токен?
29:34 По поводу наполнения JWT токена: насколько правильно докидывать полезную нагрузку?
30:11 Если я хочу заложить в JWT сразу набор данных по клиенту - это нормальная практика?
31:41 Антипаттерн - когда одной системой пользуются все сервисы
33:50 JWT-токен - это часть OAuth 2.0?
34:11 Что с токенами если пользователь не авторизован?
36:36 Если кроме Bearer token у пользователя создаются другие, дополнительные токены, то это уже не Bearer токены?
38:54 Сервис авторизации - сторонний. Сервис ресурсов - шина?
40:02 Начало доклада Виталия
41:40 Почему часто путают авторизацию с аутентификацией
42:08 Токены и сессии не нужны для того, чтобы пользователь мог залогиниться
44:12 Минусы авторизации по логину и паролю
46:33 Зачем придумали сессии пользователя?
50:43 Зачем появились токены?
53:25 Как токены способствуют обеспечению безопастности
54:25 Чем access-токен отличаестя от refresh-токена?
57:32 Как решается проблема масштабирования
01:01:46 Зачем кодировать в base64
01:02:10 Где именно хранятся access и refresh-токен?
01:04:55 Технология единого входа
01:13:18 Подробней рассмотрим OAuth
01:13:56 Что такое Bearer?
01:20:29 Стоит ли данные класть в токен?
01:22:08 Про гостевой токен
01:23:36 Вопрос о шифровании и дешифровке JWT-токена
01:30:18 Как сервис при получении запроса может понять, что пользователь исчерпал лимит на использование сервиса?
01:31:40 Чем access токен отличается от API-токен?
01:33:33 Что делать, если ролей пользователя много?
01:40:00 Отдельный сервис ролевой модели: бизнес-операции (привилегии), набор ролей, набор групп ролей
01:42:02 Когда лучше использовать JWT, SSO или AOuth 2.0?
01:45:16 Вопрос к Денису про Keycloak
01:47:05 Демонстрация кейса с Keycloak
01:51:27 Предложение Олега конектить Keycloak с Kerberos или Active Directory и получать данные по правам оттуда

Телеграм-группа Виталия про фронтенд-разработку и JS
@jstsmentor

Рекомендации по теме
Комментарии
Автор

Подскажите, пожалуйста, такой вопрос. Требуется реализовать интеграцию с внешним сервисом авторизации через звонок на телефон. Интеграцию предоставляет оператор ОБИТ. Предварительно наш сервер авторизации должен авторизоваться в их сервисе, предоставив имя и пароль. Как правильно хранить пароли в этом случае. Читаю, что пароли необходимо хранить в кешированном представлении на сервере. Но в данном случае это не представляется возможным. Есть ли бест практики помимо шифрования паролей, как замена кешированию? P/S Интеграций может быть много, и, соответственно, много учетных данных, требующих правильного хранения (с точки зрения ИБ).

deniskirdyanov
Автор

Добрый день. Подскажите, пожалуйста, почему мобильное приложение перекидывает пользователя на форму авторизации на сервере авторизации? Может ли пользователь ввести учетные данные в форме мобильного приложения и в параметрах сразу передать их на сервер, а в ответ получить пару токенов (так мы исключаем код доступа для приложения)?

deniskirdyanov