Рубрики
Разработка

Прозрачная авторизация сервисов в гетерогенной среде на базе Nginx/LUA

Я давно уже полюбил связку Nginx и LUA. И сегодня хочу рассказать про один вариант использования этих инструментов.

Суть задачи/проблемы:
Представьте, что в вашей информационной системе есть набор различных сервисов, с которыми могут взаимодействовать клиентские приложения. Конечно же, доступ к системе и к сервисам, в частности, разрешается после авторизации.
Все сервисы общаются с клиентами по разным протоколам (HTTP REST API, SOAP, XML-RPC, WebSocket, WAMP, GET/POST запросы и так далее) и даже написаны на разных языках.

Вопрос: как минимальными усилиями сделать, чтобы доступ к любым сервисам был возможен только авторизованным пользователям?

Рубрики
MacOS

Избавляемся от надоедливого сообщения «Accept incoming network connections» для приложений в Mac OS X

Периодически, после частичного обновления приложениями самих себя, или изменений со стороны пользователя, например, изменение иконки, при запуске приложения, которое работает с сетью, Mac OS X начинает каждый раз спрашивать о разрешении на входящие соединения, при этом не запоминая наш выбор. Связано это с тем, что после любого частичного изменения приложения, сигнатура кода, хранящегося в подписанном приложении, начинает отличаться от реального. И это вызывает беспокойство у операционки 🙂 У меня такое возникает, например, когда IntelliJ IDEA частично обновляется. Для того, чтобы избавиться от этого диалога, есть несколько решений:

  • Удалить измененное приложение, скачать и установить заново подписанное приложение от поставщика.
  • Самому подписать измененное приложение, чтобы сигнатура соответствовала реальным файлам.

Если с первым вариантом все понятно. То вот как делается второй:

kostik@GrayWolf: ~> sudo codesign --force --sign - /Applications/MyUntrustedApplication.app/

Для подписи можно использовать какой-либо сертификат, или же, в простейшем случае, подписать конкретный экземпляр приложения, указав «-» после параметра —sign.