Я занимаюсь разработкой корпоративного облачного приложения и решаю проблемы безопасности, с которыми я столкнусь при использовании библиотеки PHP LDAP для подключения к сетям клиентов для получения пользовательских объектов.
Во-первых, проблема заключается в том, что моим клиентам придется открыть свою сеть для моих веб-серверов, что для многих является огромной угрозой безопасности. Большинство даже скажет «нет» созданию правил брандмауэра, разрешающих запросы LDAP только с моих общедоступных IP-адресов.
Во-вторых, соединение должно быть постоянно доступным, чтобы мое приложение могло опрашивать и обнаруживать новые, отключенные и удаленные пользовательские объекты. Это еще больше увеличивает фактор риска для моих клиентов.
Третья проблема заключается в том, что я получаю права на чтение только на мой клиентский сервер AD. Как я могу гарантировать, что мои клиенты случайно не дадут нам доступ на запись к их AD? Могу ли я с помощью PHP запросить разрешения для предоставленной учетной записи домена и, если включена запись, отказаться принять / сохранить учетные данные?
У кого-нибудь есть предложения получше? С моей стороны я могу установить API для прослушивания и принятия инструкций из сценария, который могут размещать мои клиенты, но это неприятно — безусловно, исправляет проблемы безопасности.
Существует так много способов подключения к серверу LDAP, но не так много статей о том, как лучше всего синхронизироваться с сервером LDAP в частной сети с сервера в общедоступной сети.
Совет крайне необходим 🙂
Спасибо!
Слишком много смелых утверждений, но вот попытка.
Третья проблема — гарантировать, что я получаю права на чтение только своим клиентам.
AD сервер — как я могу убедиться, что мои клиенты случайно не дают
нам написать доступ к их AD? Могу ли я с помощью PHP запросить разрешения
предоставленной учетной записи домена и, если запись включена, отказаться
принять / сохранить учетные данные?
Конечно, почему бы и нет. Но вы можете иметь права на вашу запись, но не другие.
У кого-нибудь есть предложения получше?
Я даже не мог представить себе доступ к какой-либо, и, конечно, не большой, организации LDAP через Интернет. Даже если это было безопасно как API. Вам действительно нужен интерфейс API, такой как OAuth или OpenID Connect.
Других решений пока нет …