Active Directory 데이터베이스에 대해 일부 사용자를 인증해야 하며 mod_authnz_pam
이를 위해 사용하고 싶습니다. mod_authnz_ldap
사용자는 자신이 속한 그룹의 제한에 따라 특정 폴더에 액세스할 수 있습니다.
문제는 또는 을 사용하여 사용자에게 권한을 부여하는 것이 가능 mod_authnz_pam
하지만 (내 의도가 아닌 그룹 파일을 지정하지 않는 한)으로는 가능하지 않다는 것입니다. 그룹 정보를 검색하고 이를 환경 변수에 저장하는 기능을 발견했습니다.Require valid-user
Require user <username>
Require group <groupname>
mod_lookup_identity
mod_authnz_pam
제 질문은 사용자 인증에 설정되는 이 환경 변수를 어떻게 사용하여 동일한 사용자에게 권한을 부여할 수 있느냐는 것입니다.
편집: 부분적으로 알아냈습니다. 이 경우와 같이 환경 변수를 참조하여 Require env
및/또는 을 사용할 수 있습니다. 지금 내 문제는 내가 고심 하고 있는 수업 평가의 순서 입니다. 다음 구성을 고려하면:Require expr
REMOTE_USER_GROUPS
httpd
Require
<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
user01
folder01
지시문을 에서 로 변경하면 Require expr
액세스할 수 있습니다 Require user user01
.
Require expr
평가를 해보니 REMOTE_USER_GROUPS
서버 루트에 로그인하면 SET이 되어 있었는데, 폴더에 로그인하면 UNSET이 되어 인증에 실패한 것으로 확인되었습니다 .
편집 2: 전체가 인증/승인된 후에만 모드 조회가 호출된다는 LogLevel
것을 보여주기 위해 추가되었습니다. 그렇기 때문에 환경 변수는 내가 로그인한 변수가 아닌 다음 변수 (있는 경우 )로 설정됩니다. 나는 이것이 끝이라고 생각한다.debug
Directory
Directory
Option Indexes