Apache 그룹 인증을 위해 mod_lookup_identity 사용

Apache 그룹 인증을 위해 mod_lookup_identity 사용

Active Directory 데이터베이스에 대해 일부 사용자를 인증해야 하며 mod_authnz_pam이를 위해 사용하고 싶습니다. mod_authnz_ldap사용자는 자신이 속한 그룹의 제한에 따라 특정 폴더에 액세스할 수 있습니다.

문제는 또는 을 사용하여 사용자에게 권한을 부여하는 것이 가능 mod_authnz_pam하지만 (내 의도가 아닌 그룹 파일을 지정하지 않는 한)으로는 가능하지 않다는 것입니다. 그룹 정보를 검색하고 이를 환경 변수에 저장하는 기능을 발견했습니다.Require valid-userRequire user <username>Require group <groupname>mod_lookup_identitymod_authnz_pam

제 질문은 사용자 인증에 설정되는 이 환경 변수를 어떻게 사용하여 동일한 사용자에게 권한을 부여할 수 있느냐는 것입니다.

편집: 부분적으로 알아냈습니다. 이 경우와 같이 환경 변수를 참조하여 Require env및/또는 을 사용할 수 있습니다. 지금 내 문제는 내가 고심 하고 있는 수업 평가의 순서 입니다. 다음 구성을 고려하면:Require exprREMOTE_USER_GROUPShttpdRequire

<VirtualHost *:80>
DocumentRoot /var/www/sftp
ServerName mysite.com.br
ErrorLog logs/mysite.log
<Directory "/var/www/sftp">
    Options Indexes
    AuthType Basic
    AuthName "private area"
    AuthBasicProvider PAM
    AuthPAMService httpd-sssd-auth
    LookupUserGroups REMOTE_USER_GROUPS :
    Require valid-user
</Directory>
<Directory "/var/www/sftp/folder01">
    Options Indexes
LookupUserGroups REMOTE_USER_GROUPS :
    <RequireAll>
    Require valid-user
    Require expr reqenv('REMOTE_USER_GROUPS') =~ /group01/
    </RequireAll>
</Directory>

folder01서버 루트에 로그인하면 폴더를 시각화할 수 있습니다. 그런데 폴더 자체에 접근하려고 하면 인증할 기회조차 얻지 못합니다. 403이 나를 무너뜨렸다. user01에 대한 유효한 그룹을 포함하지 않는 항목으로 정규식을 변경하면 Require expr폴더를 시각화할 수 없기 때문에 이것이 작동한다고 100% 확신합니다 .folder01

오류 로그에는 다음이 표시됩니다.[Fri Jul 29 18:49:51.817402 2016] [authz_core:error] [pid 9921] [client 10.221.1.187:32196] AH01630: client denied by server configuration: /var/www/sftp/user01

user01folder01지시문을 에서 로 변경하면 Require expr액세스할 수 있습니다 Require user user01.

Require expr평가를 해보니 REMOTE_USER_GROUPS서버 루트에 로그인하면 SET이 되어 있었는데, 폴더에 로그인하면 UNSET이 되어 인증에 실패한 것으로 확인되었습니다 .

편집 2: 전체가 인증/승인된 후에만 모드 조회가 호출된다는 LogLevel것을 보여주기 위해 추가되었습니다. 그렇기 때문에 환경 변수는 내가 로그인한 변수가 아닌 다음 변수 (있는 경우 )로 설정됩니다. 나는 이것이 끝이라고 생각한다.debugDirectoryDirectoryOption Indexes

관련 정보