Slide 1

Slide 1 text

AUTHORIZE IT

Slide 2

Slide 2 text

Технологичный сервис по работе с тревел услугами
 
 https://app.tmc24.io Алексей Пиянин, team lead teamc.io Цифровая платформа WorldSkills Russia https://worldskills.ru
 Союз “Молодые профессионалы (Ворлдскиллс Россия)”

Slide 3

Slide 3 text

Архитектура: • Микросервисы • REST API Задача: • Авторизация запросов • Простое описание правил авторизации Контекст

Slide 4

Slide 4 text

https://www.ory.sh

Slide 5

Slide 5 text

ORY Hydra: аутентификация

Slide 6

Slide 6 text

ORY Oathkeeper: правило авторизации

Slide 7

Slide 7 text

ORY Oathkeeper: правило авторизации ORY Hydra
 Глобальные разрешения - token scope ORY Keto
 Разрешение для действия над ресурсом - resource id

Slide 8

Slide 8 text

ORY Oathkeeper: authenticator, authorizer • noop Без проверок • anonymous Добавляет заголовок Authenticate c subject полем анонимного пользователя из env переменной Authenticator: • oauth2_client_credentials HTTP Basic Authorization по base64() • oauth2_introspection OAuth 2.0 Token Introspection • jwt Аутентификация по JSON Web Token Authorizer: • allow • deny • keto_engine_acp_ory Проверка разрешения с ипользованием ORY Keto API

Slide 9

Slide 9 text

Декларативное описание: простые правила Требования к формату конфигурации: • Простой понятный формат; • Изменение любым участником команды; • Версионность. Субъекты конфигурации: • Адрес Oathkeeper proxy; • Адрес сервиса; • Роли пользователей.

Slide 10

Slide 10 text

Декларативное описание: актуальная версия Субъекты конфигурации: • Адрес Oathkeeper proxy; • Адрес сервиса; • Разрешение на сервис; • Разрешение на подсистему сервиса; • Разрешение на категорию действий; • Данные сессии; • Разрешение на ресурс.

Slide 11

Slide 11 text

ORY Keto: разрешение для действия над ресурсом

Slide 12

Slide 12 text

ORY Oathkeeper: Последовательность обработки запроса

Slide 13

Slide 13 text

Go: Batteries Included • net/http/httputil.ReverseProxy Обработчик HTTP, которые принимает входящий запрос, перенаправляет его на другой сервер и результат возвращает клиенту. • github.com/spf13/cobra Библиотека для создания современного CLI сервисов и приложений. • golang.org/x/oauth2 Библиотека формирования HTTP запросов OAuth2 аутентификации и авторизации.

Slide 14

Slide 14 text

https://www.ory.sh Telegram: @alexey_p https://github.com/7phs Вопросы