Можно ли использовать проверку подлинности Windows с PHP в IIS для подключений ODBC?


Можно ли использовать аутентификацию пользователей Windows (настройка в iis) для подключений к базе данных в PHP?

Это возможно в.СЕТЕВОЙ мир с помощью техники, называемой "олицетворение". Существует ли это также в мире PHP/IIS?

РЕДАКТИРОВАТЬ: База данных, которую я использую, - MS SQL Server 2005.

Author: Christopher G. Lewis, 2009-02-27

5 answers

Если вы можете аутентифицировать PHP-приложение с помощью Keberos, вы можете использовать делегирование kerberos для передачи учетных данных на дополнительный сервер.

У Кена Шефера есть целая серия блогов о Kerberos, в том числе эта статья о делегировании.

 3
Author: Christopher G. Lewis, 2009-03-03 05:53:22

Должен ли каждый пользователь проходить проверку отдельно? Если нет, вы можете настроить IIS на выдачу себя за одного человека.

 1
Author: Johannes, 2009-02-27 09:48:06

Я знаю, что вы можете указать имя пользователя и пароль, которые вы хотите связать с вашим подключением ODBC, если вы создадите его через системный DSN. Я предполагаю, что логином un/pw могут быть учетные записи пользователей Windows.

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

Однако вы не сказали, какую базу данных используете. Если вы используете MS Access, я знаю, что вы можете скрыть свои пароли к базе данных. Смотрите мой комментарий к другому сообщению.

 1
Author: m42, 2017-05-23 09:57:50

Олицетворение через Kerberos является наиболее безопасным решением, а также самым простым в администрировании. Наличие отдельных "синтетических" пользователей при доступе к ресурсам, таким как базы данных, означает, что вы в основном обходите все возможности авторизации базы данных, получаете дублирующие точки администрирования доступа и получаете нулевую отслеживаемость на уровне базы данных (вы просто видите, что MySyntheticUser пытался получить доступ к чему-то, а не кто за этим стоял).

Сказав это, я должен предупредить вас что Kerberos от Microsoft не всегда так прост, как можно было бы ожидать. У нас были значительные проблемы с тем, чтобы заставить его работать между pure.СЕТЕВЫЕ решения, IIS, SQL Server 2005, домены AD и Internet Explorer. Большая часть этого сводилась к тому, чтобы правильно настроить доверие. Кроме того, хотя я сам не разработчик PHP, я нахожу некоторые признаки того, что у вас могут возникнуть проблемы с доступом к функциям библиотеки Kerberos. Узнайте, какую поддержку вы можете получить для SSPI. Кроме того, ваш PHP-процесс должен иметь необходимые разрешения для олицетворения пользователей, которые, как я полагаю, можно администрировать через IIS.

Я бы не обязательно ожидал, что все это будет простым или легким, особенно потому, что у Microsoft мало возможностей для поддержки языков и платформ, отличных от Microsoft.

 1
Author: Pontus Gagge, 2009-03-08 14:28:09

Каким образом вы используете IIS на PHP? Как отдельный CGI или ISAPI?

Моим предпочтительным решением было бы иметь отдельного пользователя на SQL Server для доступа, вместо того, чтобы пытаться заставить IIS работать как олицетворенный пользователь, что хорошо для машин разработки, но не так хорошо в дальнейшем для производства или даже постановки.

Но если вы используете FastCGI, то, насколько я помню, можно выдать себя за пользователя, которым запускается процесс, с помощью файла конфигурации, который передает учетные данные пользователя, вошедшего в систему.

 0
Author: Chris S, 2009-03-06 08:18:33