2015-03-11 2 views
0

Я пытаюсь настроить apache для аутентификации сначала с помощью двухстороннего SSL-подтверждения, а затем mod_auth_kerberos, в котором все работает нормально .. backend is freeIPA.apache two way ssl auth with kerberos

однако я хочу, чтобы ограничить пользователь SSL_CLIENT_S_DN_CN и не проверить подлинность любого другого пользователя действительного кербероса

это является VirtualHost конфига,

LoadModule auth_kerb_module modules/mod_auth_kerb.so 
LoadModule dumpio_module modules/mod_dumpio.so 
LoadModule ssl_module modules/mod_ssl.so 

Listen 443 


<VirtualHost *:443> 
    ServerAdmin web01.server.hostingprovider.com 
    DocumentRoot "/var/www/html" 
    ServerName myserver.name 
    SSLEngine on 
    SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5 
    SSLHonorCipherOrder on 
    SSLCertificateFile /etc/httpd/ssl/server-cert.pem 
    SSLCertificateKeyFile /etc/httpd/ssl/private/server-key.pem 

    SSLVerifyClient require 
    SSLVerifyDepth 1 
    SSLCACertificateFile /etc/httpd/ssl/cacert.pem 

    LogLevel debug 
    DumpIOInput On 
    DumpIOOutput On 
    ScriptAlias /application /var/www/app.cgi 
    ErrorLog "logs/app01-error.log" 
    CustomLog "logs/app01-access_log" common 

    <Location /> 
     SSLUserName SSL_CLIENT_S_DN_CN 
     AuthType Kerberos 
     AuthName "Kerberos Login" 
     KrbMethodNegotiate On 
     KrbMethodK5Passwd On 
     KrbAuthRealms MYREALM.COM 
     Krb5KeyTab /etc/security/keytabs/spnego.service.keytab 
     require valid-user 
    </Location> 


</VirtualHost> 

Я попытался это с SSLRequire и это прекрасно работает пользователь «krisdigitx», но он также позволяет другим пользователям kerberos проходить аутентификацию с тем же сертификатом.

SSLRequire (%{SSL_CLIENT_S_DN_CN} eq "krisdigitx") 
  1. Как я могу создать БД т.е.

SSLRequire (% {SSL_CLIENT_S_DN_CN} эк "из некоторой БД")

должен соответствовать пользователю в БД, а затем разрешить доступ ?

  1. Как я могу подтвердить пользователя на первом шаге и разрешить только его передачу для проверки подлинности Kerberos?

ответ

0

См. Общее руководство по адресу Web App Authentication с FreeIPA. То, что вы пытаетесь сделать, свернуто (см. Ответы ниже), и есть более эффективные способы ограничения доступа к определенным пользователям или группам, например. с использованием правил HBAC и mod_authnz_pam.

Теперь на ответы:

  1. Согласно SSLRequire documentation только литералов, Mod_ssl environment variables и функции file расширения можно использовать в выражении соответствия. Почти невозможно достичь того, чего вы хотите (вы могли бы гипотетически использовать FUSE или аналогичную технологию, чтобы представить результат запроса базы данных в виде файла).

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

+0

благодарит @frasertweedale за входные данные ... что помогает. – krisdigitx