Re: Perl Sasl GSSAPI and

2009-04-24 Thread Graham Barr

On Apr 23, 2009, at 8:27 PM, Graham Barr wrote:

I have made a change to this effect and pushed to the repository.

The perl-ldap repository is not available on github at 
http://github.com/gbarr/perl-ldap/tree/master

This change is on the next branch, I would appreciate anyone testing  
it.


For those who do not use git, you can download a snapshot of this by  
going to


http://github.com/gbarr/perl-ldap/tree/next

There is a download link where you can download either a tar or zip file

Graham.



Re: Perl Sasl GSSAPI and

2009-04-23 Thread Graham Barr


On Apr 14, 2009, at 7:53 AM, Graham Barr wrote:



On Apr 13, 2009, at 12:25 PM, Simon Wilkinson wrote:



On 13 Apr 2009, at 17:23, Dale Moore wrote:

I recommend that if we are going to use Net::LDAP get the peerhost,
and use it as part of the service name, that we modify Net::LDAP to
do the reverse DNS and not expect GSSAPI to do it.  Or we change our
approach in dealing with hosts with round-robin ip addresses.


The reason why both MIT and Heimdal are moving away from doing  
reverse lookups is that it introduces a security dependency on the  
DNS. Given that (in general) the DNS is not secure, moving the  
lookup elsewhere is a retrograde step. Net::LDAP should simply pass  
the server name that it has been asked to connect to through to the  
GSSAPI library. The correct place to handling name resolution  
issues is on the server, or (once referral support is in place) on  
the KDC.


I think the flaw is in having Net::LDAP decide the hostname to pass  
to Auth::SASL


Currently an Authen::SASL object is passed to -bind and bind will  
call $sasl-client_new(ldap,$connected_name);


Whatever the correct method anyone may think, that is not going to  
work for some. What I propose is the option for the caller to call - 
client_new and pass the result to bind. ie, if passed object - 
isa('Authen::SASL') then we call client_new as we do now, otherwise  
we use the given object as the connection object.


This would remain backwards compatible with what is there now, but  
give greater control to those user that the current scheme does not  
work for.


I have made a change to this effect and pushed to the repository.

The perl-ldap repository is not available on github at 
http://github.com/gbarr/perl-ldap/tree/master

This change is on the next branch, I would appreciate anyone testing it.

Graham.



Re: Perl Sasl GSSAPI and

2009-04-14 Thread Graham Barr


On Apr 13, 2009, at 12:25 PM, Simon Wilkinson wrote:



On 13 Apr 2009, at 17:23, Dale Moore wrote:

I recommend that if we are going to use Net::LDAP get the peerhost,
and use it as part of the service name, that we modify Net::LDAP to
do the reverse DNS and not expect GSSAPI to do it.  Or we change our
approach in dealing with hosts with round-robin ip addresses.


The reason why both MIT and Heimdal are moving away from doing  
reverse lookups is that it introduces a security dependency on the  
DNS. Given that (in general) the DNS is not secure, moving the  
lookup elsewhere is a retrograde step. Net::LDAP should simply pass  
the server name that it has been asked to connect to through to the  
GSSAPI library. The correct place to handling name resolution issues  
is on the server, or (once referral support is in place) on the KDC.


I think the flaw is in having Net::LDAP decide the hostname to pass to  
Auth::SASL


Currently an Authen::SASL object is passed to -bind and bind will  
call $sasl-client_new(ldap,$connected_name);


Whatever the correct method anyone may think, that is not going to  
work for some. What I propose is the option for the caller to call - 
client_new and pass the result to bind. ie, if passed object - 
isa('Authen::SASL') then we call client_new as we do now, otherwise  
we use the given object as the connection object.


This would remain backwards compatible with what is there now, but  
give greater control to those user that the current scheme does not  
work for.


Graham.



Re: Perl Sasl GSSAPI and

2009-04-14 Thread Clif Harden

Graham Barr wrote:


On Apr 13, 2009, at 12:25 PM, Simon Wilkinson wrote:



On 13 Apr 2009, at 17:23, Dale Moore wrote:

I recommend that if we are going to use Net::LDAP get the peerhost,
and use it as part of the service name, that we modify Net::LDAP to
do the reverse DNS and not expect GSSAPI to do it.  Or we change our
approach in dealing with hosts with round-robin ip addresses.


The reason why both MIT and Heimdal are moving away from doing 
reverse lookups is that it introduces a security dependency on the 
DNS. Given that (in general) the DNS is not secure, moving the lookup 
elsewhere is a retrograde step. Net::LDAP should simply pass the 
server name that it has been asked to connect to through to the 
GSSAPI library. The correct place to handling name resolution issues 
is on the server, or (once referral support is in place) on the KDC.


I think the flaw is in having Net::LDAP decide the hostname to pass to 
Auth::SASL


Currently an Authen::SASL object is passed to -bind and bind will 
call $sasl-client_new(ldap,$connected_name);


Whatever the correct method anyone may think, that is not going to 
work for some. What I propose is the option for the caller to call 
-client_new and pass the result to bind. ie, if passed object 
-isa('Authen::SASL') then we call client_new as we do now, otherwise 
we use the given object as the connection object.


This would remain backwards compatible with what is there now, but 
give greater control to those user that the current scheme does not 
work for.


Graham.




Sounds like a reasonable plan to me.

Regards,

Clif Harden   char...@pobox.com



Re: Perl Sasl GSSAPI and

2009-04-13 Thread Simon Wilkinson


On 13 Apr 2009, at 17:23, Dale Moore wrote:

I recommend that if we are going to use Net::LDAP get the peerhost,
and use it as part of the service name, that we modify Net::LDAP to
do the reverse DNS and not expect GSSAPI to do it.  Or we change our
approach in dealing with hosts with round-robin ip addresses.


The reason why both MIT and Heimdal are moving away from doing reverse  
lookups is that it introduces a security dependency on the DNS. Given  
that (in general) the DNS is not secure, moving the lookup elsewhere  
is a retrograde step. Net::LDAP should simply pass the server name  
that it has been asked to connect to through to the GSSAPI library.  
The correct place to handling name resolution issues is on the server,  
or (once referral support is in place) on the KDC.


S.