www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

 Читать далее...

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

 Читать далее...

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

 Читать далее...

Книжная полка  

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

 Читать далее...

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

 Читать далее...

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

 Читать далее...

Книжная полка  

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

Накануне лета издательство «БХВ» выпустило книжные новинки, от которых любителям чтения будет

 Читать далее...

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

 Читать далее...

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

 Читать далее...

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

 Читать далее...

Книжная полка  

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

 Читать далее...

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9462
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 9697
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 7112
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 4445
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 5238
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 5229
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 7905
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 4594
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 4851
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 8854
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 12297
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 13866
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 15633
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 10496
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 8518
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 6752
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 5895
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 4764
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 4465
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 4682
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Прозрачная защита микросервисов. Как защитить API и создать функциональность для REST API

Архив номеров / 2016 / Выпуск №11 (168) / Прозрачная защита микросервисов. Как защитить API и создать функциональность для REST API

Рубрика: Разработка /  Микросервисы   | Дополнительные материалы

Александр Календарев АЛЕКСАНДР КАЛЕНДАРЕВ, OTG, руководитель группы (ТимЛид), akalend@mail.ru

Прозрачная защита микросервисов
Как защитить API и создать функциональность для REST API

Сегодня сложное монолитное приложение делят на несколько микросервисов и публичное API для клиентов. Публичное API и общение между открытыми микросервисами требуют авторизационной защиты

Проверка подлинности в теории

В веб-приложениях, использующих REST API, в качестве защиты применяют рекомендации WWW. Защита происходит посредством токена, который передается в HTTP-заголовке Authorization и представляет собой «соленый» хеш передаваемого сообщения (md5, sha, sha512).

Понятие «соленый» (salt) хеш появилось при создании систем хранения паролей, когда для доступа пользователя сравнивают не сам пароль, а его хеш. А чтобы в разы труднее было подобрать пароль, по уже готовым хешам, хеш «подсаливают», т.е. добавляют некую секретную константу («соль») и уже хешируют полученный результат. Не зная секретной константы, в случае утечки данных такие хеши намного труднее подбирать. Теперь, когда пользователь вводит пароль, на принимающей стороне система к нему подмешивает «соль», т.е. добавляют заданный секретный текст, хешируют и сравнивают уже «подсоленные» хеши.

Аналогичный алгоритм используется и при авторизации микросервисов. Пользователю сервиса дается секретный ключ, который подмешивают в текст и уже от полученного результата берут хеш. В HTTP-заголовке Authorization передается текст: Token xxx, где иксы заменяются значением хеша.

На принимающей стороне средствами HTTP-сервера проверяют подлинность отправляемого сообщения и воз-вращают либо результат работы микросервиса, либо 403 HTTP-код ошибки (Forbidden). И нет никакой необходимости данную функцию возлагать на сам микросервис.

Nginx в качестве авторизационного сервиса

Среди стандартных модулей nginx нет реализующего такую функцию. Есть очень похожий модуль ngx_http_auth_jwt_module, реализующий спецификацию JWT [1] RFC 7519, но с помощью него решаются более сложные задачи. Также естьмодуль nginx accesskey, который хеширует часть строки запроса, IP и другие выбранные параметры. Но, к сожалению, он разработан под nginx старых версий и не собирается с последними исходниками. Конечно, API nginx открыто, иможно реализовать свой модуль. Но зачем бить из пушки по воробьям, коль проще это разработать, используя модуль lua.

Lua [2] (в переводе с португальского – «луна») – Open Source-скриптовый язык программирования, разработанный в подразделении Tecgraf (Computer Graphics Technology Group) католического университета Рио-де-Жанейро. По своим возможностям и идеологии язык очень похож на JavaScript и в основном используется во встраиваемых решениях, по большей части в игровой индустрии: World Craft, Angry Birds; при разработке IDE Adobe Photoshop Lightroom, Moai; всистемных программах apt-rpm, Redis, Tarantool. Lua – более прост и за счет этого быстр, занимает меньше места в оперативной памяти, имеет быстрый JIT-компилятор, поэтому он и нашел свою нишу в разного рода встраиваемых решениях. В настоящее время популярность Lua невелика – всего 25-е место среди языков программирования.

Модуль lua_nginx_module [3] был разработан группой Openresty [4] под руководством Yichun Zhang (agentzh) в рамках создания одноименной платформы на основе собственной сборки nginx для проекта Taobao.com. Этовысокопроизводительная HTTP-платформа, выдерживающая до 100 тысяч соединений на один узел, на базе которой возможно вести разработку разных веб-приложений и микросервисов. Освоение этой платформы выходит за рамки данной статьи.

Статью целиком читайте в журнале «Системный администратор», №11 за 2016 г. на страницах 50-55.

PDF-версию данного номера можно приобрести в нашем магазине.


  1. Cпецификация JWT – https://jwt.io.
  2. Oфициальный сайт языка Lua – http://Lua.org.
  3. Cсылка на репозиторий lua-модуля nginx – https://github.com/openresty/lua-nginx-module.
  4. Сайт проекта Openresty – http://openresty.org.
  5. Исходные коды проекта – https://github.com/akalend/authorize-rest.lua.

Комментарии отсутствуют

Добавить комментарий

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

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru