Изучаю вопрос замены запроса логин/пароль при авторизации на странице php с логин/пароль на запрос сертификата. Насколько я понимаю, после того, как httpd принял сертификат пользователя, можно в полной мере доверять переменным $_SERVER[SSL_CLIENT_*], полученным от сертификата? Ну там [SSL_CLIENT_S_DN_CN] в качестве username, [SSL_CLIENT_I_DN_Email] в качестве email и прочее (там уж по желанию).Ошибиться нельзя, т.к. в данном случае я не просто разрешаю/отклоняю доступ к какой-то директории на сервере, а пускаю пользователя на основании данных от его сертификата к его переписке.
Я правильно понимаю, что эти переменные ($_SERVER[SSL_CLIENT_*]) подделать нельзя, они устанавливаются только если сервер признал сертификат пользователя?
это прописано в переменных среды процесса соединения, имея соответствующие права их можно изменить
Имеется ввиду доверие к процессу веб-сервера?Т.е. если считать, что серверу, получившему клиентский сертификат, мы доверяем, то на основании переменной $_SERVER['SSL_CLIENT_I_DN_Email'] можно давать браузеру-клиенту доступ к данным аккаунта (уникальность SSL_CLIENT_I_DN_Email в сертификате, конечно же, должна быть)?
> Имеется ввиду доверие к процессу веб-сервера?
> Т.е. если считать, что серверу, получившему клиентский сертификат, мы доверяем, то на
> основании переменной $_SERVER['SSL_CLIENT_I_DN_Email'] можно давать браузеру-клиенту
> доступ к данным аккаунта (уникальность SSL_CLIENT_I_DN_Email в сертификате, конечно же,
> должна быть)?Можно. А как по другому бы работало. Все auth* включая kerberos собственно усанавливают $REMOTE_USER - это тоже только переменная окружения.
> Можно. А как по другому бы работало.Логично. Спасибо!