Authen::NTLM − An NTLM authentication module
use
Mail::IMAPClient;
use Authen::NTLM;
my $imap =
Mail::IMAPClient−>new(Server=>'imaphost');
ntlm_user($username);
ntlm_password($password);
$imap−>authenticate("NTLM",
Authen::NTLM::ntlm);
:
$imap−>logout;
ntlm_reset;
:
or
ntlmv2(1);
ntlm_user($username);
ntlm_host($host);
ntlm_password($password);
:
or
my $ntlm =
Authen::NTLM−> new(
host => $host,
user => $username,
domain => $domain,
password => $password,
version => 1,
);
$ntlm−> challenge;
:
$ntlm−> challenge($challenge);
This module
provides methods to use NTLM authentication. It can
be used as an authenticate method with the Mail::IMAPClient
module
to perform the challenge/response mechanism for NTLM
connections
or it can be used on its own for NTLM authentication with
other
protocols (eg. HTTP).
The implementation is a direct port of the code from
F<fetchmail>
which, itself, has based its NTLM implementation on
F<samba>. As
such, this code is not especially efficient, however it will
still
take a fraction of a second to negotiate a login on a PII
which is
likely to be good enough for most situations.
ntlm_domain()
Set the domain to use in the
NTLM authentication messages.
Returns the new domain. Without an argument, this function
returns the current domain entry.
ntlm_user()
Set the username to use in the
NTLM authentication messages.
Returns the new username. Without an argument, this function
returns the current username entry.
ntlm_password()
Set the password to use in the
NTLM authentication messages.
Returns the new password. Without an argument, this function
returns the current password entry.
ntlm_reset()
Resets the NTLM
challenge/response state machine so that the next
call to C<ntlm()> will produce an initial connect
message.
ntlm()
Generate a reply to a
challenge. The NTLM protocol involves an
initial empty challenge from the server requiring a message
response containing the username and domain (which may be
empty).
The first call to C<ntlm()> generates this first
message ignoring
any arguments.
The second time it is called, it is assumed that the
argument is
the challenge string sent from the server. This will contain
8
bytes of data which are used in the DES functions to
generate the
response authentication strings. The result of the call is
the
final authentication string.
If C<ntlm_reset()> is called, then the next call to
C<ntlm()> will
start the process again allowing multiple authentications
within
an application.
ntlmv2()
Use NTLM v2 authentication.
new %options
Creates an object that accepts the following options: "user", "host", "domain", "password", "version".
challenge [$challenge]
If $challenge is not supplied, first-stage challenge string is generated. Otherwise, the third-stage challenge is generated, where $challenge is assumed to be extracted from the second stage of NTLM exchange. The result of the call is the final authentication string.
David (Buzz)
Bussenschutt <[email protected]> − current
maintainer
Dmitry Karasik <[email protected]> − nice
ntlmv2 patch, OO extensions.
Andrew Hobson <[email protected]> − initial
ntlmv2 code
Mark Bush <[email protected]> − perl
port
Eric S. Raymond − author of fetchmail
Andrew Tridgell and Jeremy Allison for SMB/Netbios code
perl, Mail::IMAPClient, LWP::Authen::Ntlm
1.09 − fix
CPAN ticket # 70703
1.08 − fix CPAN ticket # 39925
1.07 − not publicly released
1.06 − relicense as GPL+ or Artistic
1.05 − add OO interface by Dmitry Karasik
1.04 − implementation of NTLMv2 by Andrew
Hobson/Dmitry Karasik
1.03 − fixes long−standing 1 line bug
L<http://rt.cpan.org/Public/Bug/Display.html?id=9521>
− released by David Bussenschutt 9th Aug 2007
1.02 − released by Mark Bush 29th Oct 2001