Как обработать централизованную аутентификацию пользователя без LDAP?

Мог быть то, что Вы используете клиентские сертификаты с неправильным ключевым использованием. Проверьте, что Ваше ключевое использование имеет:

  • Очень важный
  • Подписание
  • Неотказуемость
  • Ключевая шифровка

При использовании расширенного ключевого использования проверьте на

  • Не очень важный
  • Аутентификация веб-клиента TLS
  • Почтовая защита

На стороне сервера проверяют, что у Вас есть весь сертификат CA, который использовался для подписания клиентского сертификата, и соответствующая pki иерархия настраивается. В типичной апачской установке это было бы похоже:

<VirtualHost *:443>
    ServerAdmin admin@example.net                                                                                      
    DocumentRoot /var/www/
    ServerName service.example.net
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    <Directory "/var/www/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    <Directory "/var/www/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
    </Directory>

    SSLEngine on
    SSLOptions +StdEnvVars
    SSLCertificateFile    /usr/local/ssl/certs/Server.crt
    SSLCertificateKeyFile /usr/local/ssl/private/Server.key
    SSLCACertificateFile  /usr/local/ssl/certs/caRoot.cacert.pem
    SSLVerifyClient require
    ErrorLog logs/service.example.net-443-error_log
    LogLevel info
    CustomLog logs/service.example.net-443-access.log combined

Наконец, можно попробовать отладку старым добрым openssl

openssl s_client -connect server.example.net:443 -CAfile ../ca/caRoot.crt -cert client-Access.crt -key client-Access.key  -showcerts

или завихрение

curl -kv --key client-Access.key --cert client-Access.crt --cacert ../ca/caRoot.crt  https://server.example.net/

Удачи!

3
задан 14 November 2013 в 21:25
3 ответа

Да.

Системная аутентификация в системах Linux и UNIX десятилетиями осуществляется через PAM, подключаемые модули аутентификации.

Принцип PAM заключается в том, что если вы хотите использовать новый сервер аутентификации, вам не нужно перекомпилировать все приложения, использующие аутентификацию, такие как системная аутентификация, ssh, ftp, telnet sudo и т. Д. Просто загрузите правильный модуль и все остальное. который использует PAM, может автоматически использовать новый сервер аутентификации.

Итак, если ваши приложения используют PAM (а многие, многие так и делают), и он либо уже существует, либо вы можете создать модуль PAM для своего альтернативного пользователя / хранилища аутентификации, вы » повторно сделано.

pam-pgsql - один из таких модулей PAM, который использует таблицу в базе данных PostGres SQL. Это также упростило бы интеграцию с веб-приложением,

4
ответ дан 3 December 2019 в 05:04

LDAP действительно делает три вещи на Linux-машинах:

Аутентификация:

Это область PAM, это ' s использование имени пользователя / пароля для проверки того, что пользователь является пользователем.

Авторизация:

Здесь PAM не отвечает потребностям, PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.

Атрибуты:

Где ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы заглянете в /etc/nsswitch.conf, то обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

Авторизация:

Здесь PAM не отвечает потребностям, PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.

Атрибуты:

Где ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

Авторизация:

Здесь PAM не отвечает потребностям, PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.

Атрибуты:

Где ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует ssl-сертификаты для аутентификации клиента. В чем-то похоже на то, как работает ssh.

PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.

Атрибуты:

Где ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы заглянете в /etc/nsswitch.conf, то обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.

Атрибуты:

Где ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует ssl-сертификаты для аутентификации клиента. В чем-то похоже на то, как работает ssh.

ваш домашний каталог? Как вас зовут?

Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.

Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

Вам нужно будет использовать другую версию библиотек подключаемых модулей nss, поддерживающую базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

Вам нужно будет использовать другую версию библиотек подключаемых модулей nss, которая поддерживает базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.

Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.

4
ответ дан 3 December 2019 в 05:04

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

Я подумал о том, о чем вы просите немного больше, и один из способов реализовать то, что вы хотите, - это использовать запрос к базе данных из марионеточного модуля. Поскольку марионеточный язык - это отдельная вещь, а не расширение языка общего назначения, вам, вероятно, придется написать / найти поставщика ресурсов марионетки, который будет возвращать список имен пользователей, а затем марионетку управлять / etc / passwd и т. Д. файлы на машине.

Это было бы проще реализовать в chef. Я уверен, что это возможно в марионетке. Также возможно (и это лучшая практика IMHO) обновить ваш сервер LDAP из записей базы данных. Это действительно зависит от масштаба, в котором вы работаете, и от того, насколько быстро вы хотите, чтобы изменения распространялись.

0
ответ дан 3 December 2019 в 05:04

Теги

Похожие вопросы