Часто это делается с использованием комбинации LDAP и NTLM. Браузеры, такие как IE и Firefox, могут выполнять проверку подлинности NTLM, и я считаю, что именно так работает Sharepoint. Я запускаю приложение портала на основе Java, которое использует LDAP для синхронизации пользователей и NTLM для аутентификации.
То, что вы абсолютно не хотите делать, - это чтобы пользователь вводил имя пользователя и пароль своего домена в браузер. В прошлые годы я видел несколько проектов, использующих этот подход с LDAP для аутентификации пользователей Windows. Вы правы, это проблема безопасности. Пользователь должен ввести свой пароль только один раз: при входе на рабочую станцию. Последнее, что вам нужно, это пароли, которые хранятся в кеш / временных файлах.
Я прошу прощения за то, что не могу дать ответ "вот как вы делаете это с приложением PHP". Насколько я знаю, нет единого ответа на эту проблему.
(Одна вещь, которую я делал в прошлом, и я никогда не проверял, была ли она правильной или неправильной, состояла в том, чтобы использовать PHP из IIS. Если вы используете IIS, тогда PHP заполнит серверную переменную REMOTE_USER с именем пользователя Windows (DOMAIN \ user). Это сработало для того, что я делал в то время.)