Назад | Перейти на главную страницу

Универсальный инструмент сетевой аутентификации на основе unix?

Мне нужно что-то, что будет интегрировать аутентификацию через SSH, Интернет (в идеале, включая SSL, с возможностью аутентификации с помощью сертификата на стороне клиента или пароля, как в MIT) и любых приложений, которые хотят его использовать.

Kerberos, кажется, лучше всего подходит для того, что я хочу, но поддержка инструментов кажется на удивление слабой.

Что люди используют в наши дни?

Один из возможных вариантов - LDAP. По паролю он работает для SSH и Интернета. Существуют также схемы LDAP для хранения сертификатов, поэтому их можно заставить работать с аутентификацией на основе сертификатов (но я никогда не видел этого на практике, поэтому это сложно, редко или и то, и другое :)

Преимущество LDAP состоит в том, что у него есть множество инструментов, качество которых варьируется от «Я собираюсь разрезать себе запястья!» на «это не ужасно», так что вы сможете найти то, что вам нравится (или, по крайней мере, не ненавидите :).

Один недостаток LDAP: насколько мне известно, единственный способ аутентифицироваться с помощью централизованно управляемых («в LDAP») открытых ключей SSH - это применить патч к openssh, поэтому вы все равно застряли в распространении authorized_keys файлы везде.

Я согласен с voretaq7, но также рассмотрите решение, в котором сервер LDAP передает аутентификацию на сервер Kerberos.

LDAP можно использовать для хранения сведений о пользователях и для аутентификации с помощью инструментов, не поддерживающих Kerberos, например PHP.

Kerberos позволяет использовать полубеспарольную аутентификацию SSH и LDAP (помимо прочего). Вы получаете один билет Kerberos (скажем, с помощью SSHing на хосте), а затем вам больше не будет предложено ввести ваш пароль, подключившись по SSH к другому хосту или используя ldapmodify.

Так работает Active Directory внутри. Kerberos используется для аутентификации, а LDAP используется как база данных пользователей.