Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ORY.sh - authorize it

ORY.sh - authorize it

Iskander (Alex) Sharipov

March 15, 2019
Tweet

More Decks by Iskander (Alex) Sharipov

Other Decks in Programming

Transcript

  1. Технологичный сервис по работе с тревел услугами
 
 https://app.tmc24.io Алексей

    Пиянин, team lead teamc.io Цифровая платформа WorldSkills Russia https://worldskills.ru
 Союз “Молодые профессионалы (Ворлдскиллс Россия)”
  2. Архитектура: • Микросервисы • REST API Задача: • Авторизация запросов

    • Простое описание правил авторизации Контекст
  3. ORY Oathkeeper: правило авторизации ORY Hydra
 Глобальные разрешения - token

    scope ORY Keto
 Разрешение для действия над ресурсом - resource id
  4. ORY Oathkeeper: authenticator, authorizer • noop Без проверок • anonymous

    Добавляет заголовок Authenticate c subject полем анонимного пользователя из env переменной Authenticator: • oauth2_client_credentials HTTP Basic Authorization по base64(<username:password>) • oauth2_introspection OAuth 2.0 Token Introspection • jwt Аутентификация по JSON Web Token Authorizer: • allow • deny • keto_engine_acp_ory Проверка разрешения с ипользованием ORY Keto API
  5. Декларативное описание: простые правила Требования к формату конфигурации: • Простой

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

    • Адрес сервиса; • Разрешение на сервис; • Разрешение на подсистему сервиса; • Разрешение на категорию действий; • Данные сессии; • Разрешение на ресурс.
  7. Go: Batteries Included • net/http/httputil.ReverseProxy Обработчик HTTP, которые принимает входящий

    запрос, перенаправляет его на другой сервер и результат возвращает клиенту. • github.com/spf13/cobra Библиотека для создания современного CLI сервисов и приложений. • golang.org/x/oauth2 Библиотека формирования HTTP запросов OAuth2 аутентификации и авторизации.