Authen::SASL::Perl::GSSAPI - GSSAPI (Kerberosv5) Authentication class
| Use Case | Command | Description |
|---|---|---|
| đ Initialize SASL client with GSSAPI | use Authen::SASL qw(Perl); $sasl = Authen::SASL->new(mechanism => 'GSSAPI'); $sasl->client_start($service, $host); |
Starts client-side GSSAPI authentication using Kerberos credentials |
| đ Bind to LDAP with GSSAPI | $ldap->bind(sasl => $sasl); |
Performs LDAP bind using SASL GSSAPI mechanism |
| đ Use custom GSSAPI credentials | $sasl = Authen::SASL->new(mechanism => 'GSSAPI', callback => { pass => $mycred }); |
Provide a GSSAPI::Cred object via the pass callback |
use Authen::SASL qw(Perl);
$sasl = Authen::SASL->new( mechanism => 'GSSAPI' );
$sasl = Authen::SASL->new( mechanism => 'GSSAPI',
callback => { pass => $mycred });
$sasl->client_start( $service, $host );
This method implements the client part of the GSSAPI SASL algorithm, as described in RFC 2222 section 7.2.1 resp. draft-ietf-sasl-gssapi-XX.txt.
With a valid Kerberos 5 credentials cache (aka TGT) it allows to connect to service@host given as the first two parameters to Authen::SASL's client_start() method. Alternatively, a GSSAPI::Cred object can be passed in via the Authen::SASL callback hash using the pass key.
â ī¸ Note: This module does not currently implement a SASL security layer following authentication. Unless the connection is protected by other means, such as TLS, it will be vulnerable to man-in-the-middle attacks. If security layers are required, then the Authen::SASL::XS GSSAPI module should be used instead.
The callbacks used are:
authname â The authorization identity to be used in SASL exchangegssmech â The GSS mechanism to be used in the connectionpass â The GSS credentials to be used in the connection (optional) #! /usr/bin/perl -w
use strict;
use Net::LDAP 0.33;
use Authen::SASL 2.10;
# -------- Adjust to your environment --------
my $adhost = 'theserver.bla.net';
my $ldap_base = 'dc=bla,dc=net';
my $ldap_filter = '(&(sAMAccountName=BLAAGROL))';
my $sasl = Authen::SASL->new(mechanism => 'GSSAPI');
my $ldap;
eval {
$ldap = Net::LDAP->new($adhost,
'die')
or die "Cannot connect to LDAP host '$adhost': '$@'";
$ldap->bind(sasl => $sasl);
};
if ($@) {
chomp $@;
die "\nBind error : $@",
"\nDetailed SASL error: ", $sasl->error,
"\nTerminated";
}
print "\nLDAP bind() succeeded, working in authenticated state";
my $mesg = $ldap->search(base => $ldap_base,
filter => $ldap_filter);
# -------- evaluate $mesg
The properties used are:
maxbuf â The maximum buffer size for receiving cipher textminssf â The minimum SSF value that should be provided by the SASL security layer. The default is 0maxssf â The maximum SSF value that should be provided by the SASL security layer. The default is 231externalssf â The SSF value provided by an underlying external security layer. The default is 0ssf â The actual SSF value provided by the SASL security layer after the SASL authentication phase has been completed. This value is read-only and set by the implementation after the SASL authentication phase has been completed.maxout â The maximum plaintext buffer size for sending data to the peer. This value is set by the implementation after the SASL authentication phase has been completed and a SASL security layer is in effect.Authen::SASL, Authen::SASL::Perl
Written by Simon Wilkinson, with patches and extensions by Achim Grolms and Peter Marschall.
Please report any bugs, or post any suggestions, to the perl-ldap mailing list <perl-ldap AT perl.org>
Copyright (c) 2006 Simon Wilkinson, Achim Grolms and Peter Marschall. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Generated by phpman v4.9.26-5-g7740029 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-21 02:00 @216.73.216.45
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)