Безопасность с облачными приложениями и соединениями PHP/LDAP

Я разрабатываю корпоративное облачное приложение и решаю проблемы безопасности, с которыми я столкнусь при использовании библиотеки PHP LDAP для подключения к клиентским сетям для извлечения пользовательских объектов.

Во-первых, проблема в том, что моим клиентам придется открыть свою сеть для моих веб-серверов, что для многих представляет огромный риск для безопасности. Большинство даже отказались бы от создания правил брандмауэра, разрешающих запросы LDAP только с моих общедоступных IP-адресов.

Во-вторых, соединение должно оставаться доступным все время, чтобы мое приложение могло опрашивать и обнаруживать новые, отключенные и удаленные пользовательские объекты. Это еще больше увеличивает фактор риска для моих клиентов.

Третья проблема заключается в том, чтобы убедиться, что я получаю права только на чтение для сервера AD моих клиентов. Как я могу гарантировать, что мои клиенты случайно не предоставят нам доступ для записи к своему AD? Могу ли я с помощью PHP запрашивать разрешения предоставленной учетной записи домена и, если запись включена, отказываться принимать/сохранять учетные данные?

У кого-нибудь есть лучшие предложения? Я могу установить API на своей стороне, чтобы слушать и принимать инструкции от скрипта, который могут разместить мои клиенты, но это головная боль - определенно устраняет проблемы с безопасностью.

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

Очень нужен совет :)

Благодарю вас!


person Arbiter    schedule 08.01.2016    source источник
comment
Что вы хотите сделать с доступом к LDAP? Это простая аутентификация? Или вам нужно делать некоторые случайные поиски, которые также могут кэшироваться на вашей стороне? Или необходимо выполнять сложные поиски, которые критичны по времени? 1-й: Используйте OAuth. 2-й: Кэшируйте содержимое LDAP — возможно, через push от ваших клиентов, 3-й: вам понадобится доступ к LDAP. Доступ ТОЛЬКО через LDAPS и на стороне клиента соответствующие правила брандмауэра, разрешающие доступ только с вашего IP-адреса.   -  person heiglandreas    schedule 09.01.2016


Ответы (1)


Слишком много пустых заявлений, но вот попытка.

Третья проблема заключается в том, чтобы убедиться, что я получаю права только на чтение для сервера AD моих клиентов. Как я могу гарантировать, что мои клиенты случайно не предоставят нам доступ для записи к своему AD? Могу ли я с помощью PHP запрашивать разрешения предоставленной учетной записи домена и, если запись включена, отказываться принимать/сохранять учетные данные?

Конечно, почему бы и нет. Но у вас могут быть права на вашу запись, но не у других.

У кого-нибудь есть лучшие предложения?

Я даже представить не мог получить доступ к каким-либо, и уж тем более не крупным, организациям по LDAP через Интернет. Даже если бы это было безопасно как API. Вам действительно нужен интерфейс API, такой как OAuth или OpenID Connect.

person jwilleke    schedule 09.01.2016
comment
У меня явно был светлый момент, и я не думал об интеграции моего приложения с API аутентификации ... с таким же успехом можно было ударить меня по спине! Спасибо - person Arbiter; 18.01.2016