Apache, Клиентский сертификат SSL, полномочия LDAP

Это очень наивно в этом нет никакой проверки ошибок / и т.д., но это делает то, что Вы хотите. Я предполагаю здесь, что Вы используете Powershell 2.0 с WinRM.

Принятие Вас имеет установку CSV как это:

server,path
server1,c:\path1
server2,c:\path2
server3,c:\path3

Решение было бы похоже так:

$csvdata = import-csv .\test.csv
foreach ($row in $csvdata) {
    invoke-command $row.server { param($path) mkdir $path } -argumentlist $row.path
}

Единственная действительно странная часть здесь - то, как Вы передали путь в. Как правило, сценарий в вызывать-команде не может считать Ваши локальные переменные. Вы устанавливаете параметрический усилитель для него (названный $path) и затем помещенный локальная переменная $row.path в список аргументов - это позволяет команде mkdir на удаленных серверах использовать $path переменная и это видят то, что было передано в из файла CSV.

3
задан 22 September 2011 в 16:31
2 ответа

Хорошо, для тех, кто заинтересован, apache требует наличия директивы AuthType и проверка имени пользователя каким-либо модулем.

Итак, я написал очень короткий модуль, который принимает AuthType Any и принимает любое имя пользователя.

Конфигурация выглядит так:

<Location /slaptest>
    Allow from all
    SSLVerifyClient require
    SSLVerifyDepth 1

    SSLUserName SSL_CLIENT_S_DN_CN

    AuthType Any
    AuthAnyAuthoritative on

    AuthLDAPURL "ldaps://vldap-rectech/ou=XXX,ou=YYY,o=ZZZ?cn"
    AuthzLDAPAuthoritative on
    AuthLDAPBindDN "cn=UUU,ou=Users,ou=XXX,ou=YYY,o=ZZZ"
    AuthLDAPBindPassword "******"
    AuthLDAPGroupAttributeIsDN on
    AuthLDAPGroupAttribute member
    AuthLDAPRemoteUserIsDN off
    Require valid-user
    Require ldap-group cn=ADMIN,ou=Groups,ou=XXX,ou=YYY,o=ZZZ
</Location>
3
ответ дан 3 December 2019 в 06:44

Следующее было протестировано в Apache HTTP Server 2.4.29 против Windows Server 2019 Active Directory:

<VirtualHost _default_:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/tls_server_cert_and_key.pem
    SSLCACertificateFile /etc/ssl/certs/trusted_root_ca_for_client_certs.pem
    SSLVerifyClient require
    # Use the email from the succesfully authenticated client certificate to look up for the AD user.                                                         
    SSLUserName SSL_CLIENT_S_DN_Email
    <Location />
        AuthBasicProvider ldap
        # "userPrincipalName" allows to search by the AD user email.
        # "(!(UserAccountControl:1.2.840.113556.1.4.803:=2))" filters out disabled AD users, so only active AD users are allowed to be authorized.
        AuthLDAPURL "ldap://<ACTIVE_DIRECTORY_IP>:3268/DC=example,DC=org?userPrincipalName?sub?(objectClass=person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))"
        AuthLDAPBindDN "CN=apache-bind-user,CN=Users,DC=example,DC=org"
        AuthLDAPBindPassword "<apache-bind-user-password>"
        <RequireAll>
            Require ldap-group CN=Some Group,CN=Users,DC=example,DC=org
        </RequireAll>
    </Location>
</VirtualHost>

PS: я не эксперт в HTTP-сервер Apache или Active Directory, поэтому предыдущая конфигурация может быть неоптимальной/безопасной.

0
ответ дан 19 September 2020 в 13:41

Теги

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