Кроссдоменная авторизация на Django
by
Moscow Python Meetup
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Кроссдоменная аутентификация на Django Лихобабин Сергей
Slide 2
Slide 2 text
Зачем это нужно?
Slide 3
Slide 3 text
Пароли – это плохо!
Slide 4
Slide 4 text
Пользователи не любят пароли
Slide 5
Slide 5 text
Разработчики не любят пароли
Slide 6
Slide 6 text
Количество паролей и мест, требующих их ввода нужно минимизировать
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
OAuth
Slide 9
Slide 9 text
Аутентификация vs Авторизация
Slide 10
Slide 10 text
Вот это поворот!
Slide 11
Slide 11 text
Как это работает?
Slide 12
Slide 12 text
Id клиента, Timestamp Клиент Пользователь Сервер
Slide 13
Slide 13 text
Токен, Общий секрет Клиент Пользователь Сервер
Slide 14
Slide 14 text
Токен Клиент Пользователь Сервер Токен, Аутентификационные данные
Slide 15
Slide 15 text
Токен, Код подтверждения Клиент Пользователь Сервер
Slide 16
Slide 16 text
Токен, Код подтверждения, Id клиента, Timestamp Клиент Пользователь Сервер
Slide 17
Slide 17 text
Новый токен, Общий секрет Клиент Пользователь Сервер
Slide 18
Slide 18 text
• Используется повсюду • Есть готовые решения(django-social-auth)
Slide 19
Slide 19 text
• Проектировался для других целей • Сложно реализовать клиент, если нет готового модуля • Не всегда есть возможность обращаться к внешним сервисам
Slide 20
Slide 20 text
CAS (Central authentication service)
Slide 21
Slide 21 text
Пользователь CAS-Сервер Клиент
Slide 22
Slide 22 text
CAS-Сервер Клиент Пользователь Security-token
Slide 23
Slide 23 text
Пользователь Security-token CAS-Сервер Клиент
Slide 24
Slide 24 text
Пользователь Подтверждение CAS-Сервер Клиент
Slide 25
Slide 25 text
• Поддерживается готовыми продуктами (например jenkins) • Механизм прокси-авторизации • Есть реализации провайдера и клиента для django (django-cas2)
Slide 26
Slide 26 text
Но что если CAS тоже не устраивает?
Slide 27
Slide 27 text
Пишем собственную реализацию
Slide 28
Slide 28 text
Id клиента Клиент Пользователь Сервер
Slide 29
Slide 29 text
Request-token Клиент Пользователь Сервер
Slide 30
Slide 30 text
Request-token Клиент Пользователь Сервер
Slide 31
Slide 31 text
Request-token, Auth-token Клиент Пользователь Сервер
Slide 32
Slide 32 text
Id клиента, Auth-token Клиент Пользователь Сервер
Slide 33
Slide 33 text
Данные пользователя Клиент Пользователь Сервер
Slide 34
Slide 34 text
Где-то я это уже видел…
Slide 35
Slide 35 text
Добавить по вкусу • Single-sign-out • Proxy-авторизация • Красивости, например, кастомные страницы логина для разных сервисов
Slide 36
Slide 36 text
• Возможность изменять способ аутентификации • Больше не нужно вводить пароль много раз • Single-sign-out
Slide 37
Slide 37 text
Вопросы?