OpenID провайдер использует Apache SSL/FakeBasicAuth?

Я хотел бы настроить поставщика OpenID для нашей группы, который мы можем использовать для входа во внутренние и внешние службы, поддерживающие OpenID (например, stackoverflow.com).

У всех наших пользователей есть сертификаты X.509, выданные нашим ЦС, поэтому я думаю, что идеальное решение будет использовать их для их аутентификации (т.е. провайдер не должен запрашивать пароль). Может быть, Apache FakeBasicAuth будет работать для извлечения имени пользователя из сертификата SSL-соединения?

Какое программное обеспечение лучше всего использовать? Open Source предпочтительнее.

2 ответа

Решение

ОК, я получил это с помощью:

В конфигурации Apache я сделал это (примечание: в конце концов не использовал FakeBasicAuth):

SSLCACertificateFile /.../myOrgCA.pem
SSLVerifyClient require
SSLVerifyDepth  1
SSLOptions      +StdEnvVars

Отредактируйте action_default(), чтобы перенаправить пользователя на адрес https, если доступ осуществляется через обычный http. Простой http-адрес - это тот, который вы публикуете в своем <link rel="openid.server">,

Измените getLoggedInUser(), чтобы извлечь имя пользователя из $_SERVER['SSL_CLIENT_S_DN_Email'],

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

Обратите внимание, насколько это безопасно, но мы используем его для относительно недорогих сайтов (форумы, баг-трекеры и т. Д.).

Я сам рассмотрел то же самое, и лучший ответ, который я смог найти после некоторого исследования, был именно такой, как вы предлагали - Apache запустил mod_ssl, FakeBasicAuth для идентификации пользователя, а затем извлек его, чтобы идентифицировать пользователя и проверить его.

Другие вопросы по тегам