Необходимо для корпоративного портала сделать бесшовную авторизацию. Что бы при входе в портал, автоматически происходила передача логина юзера (AD учетка).
Как я понял такую задачу можно реализовать с помощью NTML авторизации. И в нашей корпоративной сети таким образом настроен шлюз (Squid).
Однако как я не пытался повторить схему, путного ничего не вышло.
В коде я отправляю заголовки:
protected function sendAuthHeaders() {
header('HTTP/1.0 401 Unauthorized'); // требуем от клиента авторизации
header('WWW-Authenticate: NTLM'); // тип требуемой авторизации - NTLM
Yii::app()->end(); // завершаем выполнение скрипта
}
public function ntlmAuth() {
if (!$this->issetNtlmHeaders()) {
$this->sendAuthHeaders();
}
//разбор ответа от браузера
}
Как только сервер получает заголовок HTTP/1.0 401 Unauthorized, он выдает окно авторизации. А мне необходимо что бы авторизация происходила прозрачно, без запроса логина-пароля.
Портал крутится под Апач, и для него я видел несколько модулей, но как я понял они реализовывают сразу весь цикл авторизации (подключаются к AD и авторизовывают юзера там). Мне же необходимо просто получить в php скрипте имя текущего юзера, все остальное я сделаю сам.