Пять видов аутентификации и где они обитают презентация

Содержание

Слайд 2

Намиг Нурмамедов

ф

n.nurmamedov@skyeng.ru

t.me/namig_nurmamedov

Backend developer
in mobile team

Слайд 3

Экосистема Skyeng

Обучающая платформа Vimbox
Мобильное приложение для изучения слов
Skyeng TV с субтитрами
Расширение для браузера
И

многое другое

Слайд 4

Аутентификация бывает:

ф

Слайд 5

Виды аутентификации

ф

- Session
- JWT
- OAuth 2.0
- Query Token
- Basic Http

Слайд 6

Аутентификация в монолитных приложениях

ф

- Исторически, аутентификация была stateful сервисом.
- Аутентификация встроена в сервер

монолитного приложения.

Слайд 7

Сессия

ф

Server

Client

Session storage
Session_id – User data

Слайд 8

Использование сессии в skyeng

ф

id.skyeng.ru
?redirect=words.skyeng.ru

User log in
Set browser cookie session_id=123
for domain *.skyeng.ru

Check user roles
Show

homepage

GET id.skyeng.ru/session
?session_id=123

Слайд 9

Аутентификация и микросервисы

ф

Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем

идентифицировались.
Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.

Слайд 10

В контексте микросервисов

ф

Аутентификация представляет из себя сервис.
Авторизация - общая для всех сервисов функциональность.

Слайд 11

В контексте микросервисов

ф

Authentication service

Application service

Client

X

Слайд 12

В контексте микросервисов

ф

Authentication service

Application service

Client

Secret key + Token = Verified User Data

Secret key

+ User Data = Token

Private

Public

Слайд 13

1

Json Web Token - JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNT.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6y

Слайд 16

1

Использование JWT

Слайд 17

ф

Почему мы не генерируем JWT в сервисе Words?

Это ответственность сервиса Auth
Токен созданный в

нашем проекте
не сможет использоваться в других

Слайд 18

ф

Какие инструменты использует мобильный бэкенд?

Symfony Guard Authentication System
LexikJWTAuthenticationBundle

Слайд 19

ф

Как работаем с JWT локально и в тестах?

Моки пользователей с разными ролям
В качестве

токена используется логин пользователя

Слайд 20

ф

OAuth 2.0

OAuth 2.0 — протокол авторизации, позволяющий выдать одному сервису (приложению) права на доступ

к ресурсам пользователя на другом сервисе.

Слайд 21

ф

Владелец ресурса

OAuth 2.0: роли

Пользователь, данные которого мы будем шарить

Слайд 22

ф

Сервер ресурсов

OAuth 2.0: роли

Приложение, которое содержит защищенные ресурсы

Слайд 23

ф

Сервер авторизации

OAuth 2.0: роли

Приложение, которое подтверждает подлинность пользователей

Слайд 24

ф

Клиент

OAuth 2.0: роли

Приложение, которое делает запросы к серверу ресурсов от имени владельца ресурса

Слайд 25

ф

OAuth 2.0 в Skyeng

Слайд 26

ф

OAuth 2.0

Слайд 27

ф

OAuth 2.0

Слайд 28

ф

OAuth 2.0

Слайд 29

1

Использование OAuth 2.0

Шаг 1: Аутентификация в браузерном расширении

Слайд 30

1

Использование OAuth 2.0

Шаг 2: Получение списка слов на изучении

Слайд 31

ф

Query Token

Токен передается в строке запроса вместе с email пользователя.
Используется в публичном API

для пользователей.
Токен отправляется пользователю на email по запросу.

Слайд 32

ф

Query Token

GET api.words.ru/api/public/words
?email=n.nurmamedov@skyeng.ru
&token=bcfaa

Слайд 33

ф

Query Token

- Токен генерируется на основе хэш-функции по email + secret key.
- Токены

не хранятся на сервере.

Слайд 34

ф

Basic Http

- Для аутентификации между внутренними сервисами Skyeng

Слайд 35

ф

Вывод

Существуют разные виды аутентификации и каждый из них имеет свою область применения

Имя файла: Пять-видов-аутентификации-и-где-они-обитают.pptx
Количество просмотров: 60
Количество скачиваний: 0