Поделитесь опытом, как из-под фрюниксов авторизовать пользователя, который зарегистрирован в Active Directory. AD — вроде бы ведь LDAP сервер.
Куплю оверлок. Хоть узнаю что это такое.
Здравствуйте Zlobec, Вы писали:
Z>Здравствуйте Dmitry Sustretov, Вы писали:
DS>>Поделитесь опытом, как из-под фрюниксов авторизовать пользователя, который зарегистрирован в Active Directory. AD — вроде бы ведь LDAP сервер.
Z>Используя протокол LDAP. Только когда логинишься указываешь не DN а домен\имя и пароль.
Z>Только схема там кривая. А для исследования подходит любой LDAP браузер.
Z>А для чего авторизация?
ну программка есть. уровня предприятия. на данный момент авторизация доморощенная. а весь народ в AD уже давно есть. вот и появилась идея авторизовать через AD.
я ж просил опытом поделиться
у кого-то на практике получалось авторизовать с линукса или фри пользователя из AD ? если б ещё кто-нибудь привёл кусок кода на каком-нибудь перле, я б вообще был бы счастлив
Здравствуйте Dmitry A. Sustretov, Вы писали:
DAS>Здравствуйте Zlobec, Вы писали:
Z>>Здравствуйте Dmitry Sustretov, Вы писали:
DS>>>Поделитесь опытом, как из-под фрюниксов авторизовать пользователя, который зарегистрирован в Active Directory. AD — вроде бы ведь LDAP сервер.
Z>>Используя протокол LDAP. Только когда логинишься указываешь не DN а домен\имя и пароль.
Z>>Только схема там кривая. А для исследования подходит любой LDAP браузер.
Z>>А для чего авторизация?
DAS>ну программка есть. уровня предприятия. на данный момент авторизация доморощенная. а весь народ в AD уже давно есть. вот и появилась идея авторизовать через AD.
DAS>я ж просил опытом поделиться у кого-то на практике получалось авторизовать с линукса или фри пользователя из AD ? если б ещё кто-нибудь привёл кусок кода на каком-нибудь перле, я б вообще был бы счастлив
#########################################3
#
# LDAP Authentication
#
#
# $ld={
# 'login' => user login,
# 'password' => user password,
# 'bind_DN' => bind_DN,
# 'base_DN' => base_DN,
# 'bind_password' => password,
# 'ost' => host};
sub ldap_password
{
my ($ld)=@_;
my $ldaps = Net::LDAP->new($ld->{'host'},version =>3);
my $mesg;
open(FILE,">>status");
$mesg = $ldaps->bind( dn => $ld->{'domain'}."\\".$ld->{'login'},
password => $ld->{'password'} ,
version => 3 );
print FILE $ld->{'domain'}."\\".$ld->{'login'};
print FILE $mesg->code,"\n";
my $status=$mesg->code();
close FILE;
if ( $status == '0' )
{
return 1;
}
else
{
return ;
}
return ;
}
#
#Get name by login
#
#
sub user_info
{
my ($ld)=@_;
my $ldaps = Net::LDAP->new($ld->{'host'},version =>3);
my $mesg;
open(FILE,">>status1");
$mesg = $ldaps->bind( dn => $ld->{'domain'}.'\\'.$ld->{'login'},
password => $ld->{'password'} ,
version => 3
);
print FILE $mesg->code,"\n";
close FILE;
#
#Search user DN
#
my $mesg = $ldaps->search ( # perform a search
base => $ld->{'base_DN'},
filter => "(sAMAccountName=".$ld->{ 'login' }.")"
);
#print $ld->{'login'};
$mesg->code && die $mesg->error;
my $entry = $mesg->entry(0);
my $converter = Text::Iconv->new("UTF-8", "WINDOWS-1251");
my $user_name = $converter->convert($entry->get('name'));
my $e_mail;
my $user_info = {
'user_login' => $ld -> { 'login' },
'user_name' => $user_name,
'e_mail' => $e_mail
};
return $user_info;
}
Ну типа того.
Куплю оверлок. Хоть узнаю что это такое.