LDAP 인증 및 하위 디렉터리

LDAP 인증 및 하위 디렉터리

내 아파치 서버는 서버 루트에 액세스하려는 사용자를 인증하기 위해 LDAP를 사용하고 있습니다.

웹사이트에서 이미 인증된 사용자 그룹(서버의 파일에 정의됨)이 특정 디렉터리의 페이지에 액세스하도록 허용/금지하기 위해 다른 인증(메시지 없이)을 추가하고 싶습니다.

내 아파치 구성 파일에서 이 작업을 어떻게 수행할 수 있습니까?

현재는 다음과 같습니다:

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName some.ip.address

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/ssl-cert.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert.key

    <Directory /var/www/mywebsite>
        AllowOverride All
        Order deny,allow
        Deny from All

        AuthType Basic
        AuthName "LDAP Access - Mywebsite"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative on
        AuthLDAPURL "ldap://myldapserver:389/ou=mygroup,dc=mydc,dc=com?uid?sub?(objectClass=*)"

        AuthLDAPBindDN "uid=someuser,ou=apache,dc=mydc,dc=com"
        AuthLDAPBindPassword "mysuperpassword"
        Require valid-user
        Satisfy all
    </Directory>

    <Directory /var/www/mywebsite/directory>
        #What do I put in here ?
    </Directory>

</VirtualHost>

답변1

원하는 것이 모든 유효한 사용자(인증되지 않은 사용자 제외)가 대부분의 웹 사이트에 액세스하도록 허용하고 소수의 사용자 또는 그룹만 일부 영역에 액세스하도록 허용하는 것이라고 가정하면 수행해야 할 작업은 다음과 같습니다.

<Directory /var/www/mywebsite>
   # Ldap authentication bits here as now
</Directory>
<Location /secure/>
   <RequireAll>
      Require group secure
      Require not group sales
   </RequireAll>
</Location>
<Location /secure/jim/>
   <RequireAll>
      Require user jim
   </RequireAll>
</Location>

또는 여전히 Apache 2.2에 머물고 있다면 다음과 같은 방법을 선택하세요.

<Directory /var/www/mywebsite>
   # Ldap authentication bits here as now
</Directory>
<Location /secure/>
   Require ldap-group cn=secure
   # Negative matching not possible with 2.2
</Location>
<Location /secure/jim/>
   Require ldap-user jim
</Location>

해당 설정을 사용하면 모든 유효한 사용자가 /현재와 같이 대부분의 사이트에 액세스할 수 있습니다. 그러다가 2.4에서는 LDAP 그룹에 secure속 했지만~ 아니다LDAP 그룹에서는 sales아래의 항목에 액세스할 수 있습니다 /secure/(2.2에서는 secure그룹에 있는 사람들만 액세스할 수 있습니다). 사용자에게 재인증하라는 메시지가 표시되지 않으며 사용자 이름/그룹이 확인된 상태로 기존 인증이 다시 사용됩니다. 마지막으로 아래 항목은 /secure/jim/Jim에게만 표시됩니다.

다양한 요구 옵션에 대한 문서를 찾을 수 있습니다mod_authz_core / Require 아래 Apache HTTPD 2.4 문서에서. Apache 2.2의 경우 다음이 필요합니다.mod_authnz_ldap에 대한 Apache HTTPD 2.2 문서

관련 정보