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