Similar presentations:
Пять видов аутентификации и где они обитают
1. Пять видов аутентификации и где они обитают
2. Намиг Нурмамедов
Backend developerin mobile team
[email protected]
t.me/namig_nurmamedov
ф
3. Экосистема Skyeng
-Обучающая платформа Vimbox
Мобильное приложение для изучения слов
Skyeng TV с субтитрами
Расширение для браузера
И многое другое
4. Аутентификация бывает:
КлиентскаяМежсерверная
ф
5. Виды аутентификации
- Session- JWT
- OAuth 2.0
- Query Token
- Basic Http
ф
6. Аутентификация в монолитных приложениях
А утентиф икация вмонол ит ны х прил ожениях
- Исторически, аутентификация была
state ful сервисом.
- Аутентификация встроена в сервер
монолитного приложения.
ф
7. Сессия
User credentialsServer
Session_id in cookie
Session storage
Session_id – User data
Session_id
ф
Client
8. Использование сессии в skyeng
RedirectOpen
Redirect back
words.skyeng.ru
id.skyeng.ru
?redirect=words.skyeng.ru
- User log in
- Set browser cookie session_id=123
for domain *.skyeng.ru
Send session_id=123
- Check user roles
- Show homepage
Return user data
ф
GET id.skyeng.ru/session
?session_id=123
9. Аутентификация и микросервисы
- Аутентификация — предоставлениедоказательств, что вы на самом деле есть тот,
кем идентифицировались.
- Авторизация — проверка, что вам разрешен
доступ к запрашиваемому ресурсу.
ф
10. В контексте микросервисов
- Аутентификация представляет из себясервис.
- Авторизация - общая для всех сервисов
функциональность.
ф
11. В контексте микросервисов
Session_idSession_id
User data
X
Authentication
service
Application
service
ф
Session_id
Client
12. В контексте микросервисов
Authenticationservice
Token
Client
Secret key + User Data = Token
Private
Public
Secret key + Token = Verified User Data
Application
service
ф Token
13. 1
Json Web Token - JWTHeader
Payload
eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI
6IkpvaG4gRG9lIiwiaWF0IjoxNT.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6y
Signature
14. 1
JWT.IO1
15. 1
JWT.IO1
16. 1
Использование JWTLogin / password
Login / password
JWT
JWT / user_id
Сервис Words
Приложение для
изучения слов
Сервис Auth
17.
Почему мы не генерируем JWTв сервисе Words?
- Это ответственность сервиса Auth
- Токен созданный в нашем проекте
не сможет использоваться в других
ф
18.
Какие инструменты используетмобильный бэкенд?
- Symfony Guard Authentication System
- LexikJWTAuthenticationBundle
ф
19.
Как работаем с JWT локально ив тестах?
- Моки пользователей с разными ролям
- В качестве токена используется логин
пользователя
ф
20.
OAuth 2.0OAuth 2.0 — протокол авторизации,
позволяющий выдать одному сервису
(приложению) права на доступ к ресурсам
пользователя на другом сервисе.
ф
21.
OAuth 2.0: ролиВладелец ресурса
Пользователь, данные которого
мы будем шарить
ф
22.
OAuth 2.0: ролиСервер ресурсов
Приложение, которое содержит
защищенные ресурсы
ф
23.
OAuth 2.0: ролиСервер авторизации
Приложение, которое
подтверждает подлинность
пользователей
ф
24.
OAuth 2.0: ролиКлиент
Приложение, которое делает запросы
к серверу ресурсов от имени
владельца ресурса
ф
25.
OAuth 2.0 в SkyengУченик школы
Браузерное расширение
Сервис Words
ф
Сервис Auth
26.
OAuth 2.0Привет, браузерное расширение.
Я хочу посмотреть список своих слов на изучении.
Сервис Words, можешь дать мне список слов пользователя?
Извини, друг, это защищенный ресурс.
Тебе нужно передать мне access_token.
ф
27.
OAuth 2.0Ноу проблем, сир. Мой логин [email protected]
и пароль secret.
Привет, друг. Можешь предоставить мне свои доступы?
Мне нужно тебя идентифицировать.
ф
28.
OAuth 2.0Вот твой список слов. Учи на здоровье!
Сервис Words, вот access_token:
qKJkqkw1qk5yeuTolkpKn2Jlq
Все в порядке. Получай список слов.
Да,
конечно,
валиден и принадлежит
ф
Привет,
мне этот
далитокен
qKJkqkw1qk5yeuTolkpKn2Jlq
[email protected]
Можешь сказать, кому он принадлежит?
29. 1
Использование OAuth 2.0Шаг 1: Аутентификация в браузерном расширении
client_id
redirect_uri
response_type=code
access_token
30. 1
Использование OAuth 2.0Шаг 2: Получение списка слов на изучении
access_token
access_token
word_list
Сервис Words
user_data
client_id
Сервис Auth
31.
Query Token- Токен передается в строке запроса вместе
с email пользователя.
- Используется в публичном API для
пользователей.
- Токен отправляется пользователю на email
ф
по запросу.
32.
Query TokenGET api.words.ru/api/public/words
[email protected]
&token=bcfaa
ф
33.
Query Token- Токен генерируется на основе хэшфункции по email + secret key.
- Токены не хранятся на сервере.
ф
34.
Basic Http- Для аутентификации между
внутренними сервисами Skyeng
ф
35.
ВыводСуществуют разные виды
аутентификации и каждый из них имеет
свою область применения
ф
36.
ВОПРОСЫ?ф