私はPerl Subversionプリコミットフックを持っています。これにより、ユーザがSubversionリポジトリ内の特定のポイントを変更または追加する権限を持っているかどうかを確認できます。これは、次のような制御ファイルを使用します。Perl Net :: LDAPでユーザグループをチェックする:
ご覧のとおり、アクセス許可を設定するときにグループと使用グループを定義できます。私は同じことをするためにLDAPグループを使うことができたらうんざりだと思った。こうすることで、Windowsの管理者は、どのグループにいるのかを知ることができ、Facebookのステータスを最新の状態に保つ時間が増えます。
私はLDAPは、Subversionのにようにように構成されている:私は正常に動作して私たちのLDAPサーバへの接続を持っている
<Location /mfx>
DAV svn
SVNParentPath /subversion/svn_repos
AuthType basic
AuthName "Source Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldapserver:3268/dc=mycompany,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=SubVersion,OU=Users,OU=Accounts,DC=mycompany,DC=com"
AuthLDAPBindPassword "Swordfish"
Require valid-user
</Location>
が、今、私は、ユーザーがあるグループは、私が持っているものを見つける必要があります。ユーザーのSubversionの名前を$svnUser
にして、LDAPデータベースでそのユーザーを見つけて、そのユーザーが属するグループ(LDAPレコードのmemberOfの値)を確認する必要があります。しかし、私はこれについてどうやって行くのか分かりません。
はこれまでのところ、私のコードは次のようになります。今
#! /usr/bin/env perl
#
use strict;
use warnings;
use feature qw(say);
use constant {
LDAP_URL => "ldapserver",
LDAP_PORT => 3268,
LDAP_SCHEME => "ldap",
BIND_DN => "CN=SubVersion,OU=Users,OU=Accounts,DC=mycompany,DC=com",
BIND_PWORD => "Swordfish",
USER_DN => "sAMAccountName",
};
use Net::LDAP;
#
# Create LDAP Connection
#
my $ldap = Net::LDAP->new(LDAP_URL, port=> LDAP_PORT, scheme=> LDAP_SCHEME);
my $message;
$message = $ldap->bind(BIND_DN, password => BIND_PWORD);
if ($message->code != 0) {
die qq(Error in LDAP Binding:) . $message->error_desc;
}
、私は$ldap->search
を行う必要があるが、何で?私は文法でちょうど混乱しています。