Jeg forsøger at få en openvpn-server, som kører på Ubuntu 10.04, til at
tjekke brugernes login imod active directory (faktisk en
Novell-NDS-version af AD, men det er pt. ikke væsentligt
Jeg har fundet et script ude på internettet, som skulle kunne gøre det,
og installeret pakken libauthen-simple-ldap-perl. De to er åbenbart ikke
helt kompatible.
Iflg. OpenVPN's log bliver login'et afvist, fordi et parameter skal være
af typen 'scalar' men er 'undef'.
Har nogen af jeg forslag til, hvordan parametrene bliver af typen 'scalar'?
Jeg har prøvet at udkommentere 'use strict;' men uden ændring i fejlen.
---> start på perl-script <---
#!/usr/bin/perl
#
#
#
http://craig.backfire.ca/pages/computers/openvpn-ad-auth
# ubuntu-pakken libauthen-simple-ldap-perl
#use strict;
use Authen::Simple::ActiveDirectory;
my $adserver = '10.11.12.13';
my $principal = 'example.local';
my ($u,$p) = $ENV{qw/USERNAME PASSWORD/};
my $ad = Authen::Simple::ActiveDirectory->new(
host => $adserver,
principal => $principal,
);
exit ( $ad->authenticate($u, $p) ) ? 0 : 128;
---< slut på perl-script >---
---> start på klip fra openvpn.log <---
Parameter #1 (undef) to Authen::Simple::ActiveDirectory::authenticate
was an 'undef', which is not one of the allowed types: scalar
at /usr/share/perl5/Authen/Simple/Adapter.pm line 42
Authen::Simple::Adapter::authenticate(undef, undef, undef) called at
/etc/openvpn/openvpn-ad-auth.pl line 21
Sun Nov 28 20:00:07 2010 172.23.89.225:53129 TLS Auth Error: Auth
Username/Password verification failed for peer
---< slut på klip fra openvpn.log >---
---> start på klip fra adapter.pm <---
sub authenticate {
my $self = shift;
my $class = ref($self) || $self;
my ( $username, $password ) = Params::Validate::validate_with(
params => \@_,
spec => [
{
type => Params::Validate::SCALAR
},
{
type => Params::Validate::SCALAR
}
],
called => "$class\::authenticate"
);
---< slut på klip fra adapter.pm >---
--
Morten Christensen