You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Enrique Rodriguez <en...@gmail.com> on 2006/07/15 20:57:07 UTC
Re: LDAP Triggers use cases: Need for real world data
Ersin Er wrote:
> Enrique Rodriguez wrote:
>> Ersin Er wrote:
...
> So the Change Password Protocol provider is currently able to do this
> generation/conversion but the Core and LDAP Protocol Provider are not
> aware of this, right?
Correct. Change Password protocol provider can also enforce password
policy (minimum length, character mix, etc.) which at some point should
be enforced globally.
...
> OK, so we'll have Triggers for modification type operations for the
> ou=Users based subtree. Is it reasonable to do this with an AFTER
> Trigger so that the Kerberos related attributes will be updated just
> after the entry has been added/modified? Because I'm not sure whether
> we'll support modification of request parameters inside triggered stored
> procedures.
I think this makes sense.
...
>> By using triggers we can address this need server-side, and not
>> require any custom client side logic to derive keys from passwords.
>> This will make the use of Apache Directory with Kerberos much easier.
> More hints are welcome ;-) We may also have an IRC session on
> implementing this. I'll finish the preliminary version of triggers for
> playing with in a few days.
I am really looking forward to this. This is going to make working with
Kerberos way more user-friendly.
Enrique
Re: LDAP Triggers use cases: Need for real world data
Posted by Ersin Er <er...@gmail.com>.
On 7/16/06, Ersin Er <er...@gmail.com> wrote:
> Hi Emmanuel,
s/Emmanuel/Enrique. Sorry :-)
> Thanks for the responses.
>
> More to say inlined..
>
> On 7/16/06, Enrique Rodriguez <en...@gmail.com> wrote:
> > Ersin Er wrote:
> > > On 7/15/06, Enrique Rodriguez <en...@gmail.com> wrote:
> > >> Ersin Er wrote:
> > >> > Enrique Rodriguez wrote:
> > >> >> Ersin Er wrote:
> > >> ...
> > >> > So the Change Password Protocol provider is currently able to do this
> > >> > generation/conversion but the Core and LDAP Protocol Provider are not
> > >> > aware of this, right?
> > >>
> > >> Correct. Change Password protocol provider can also enforce password
> > >> policy (minimum length, character mix, etc.) which at some point should
> > >> be enforced globally.
> > >
> > > One more question: Change Password Protocol does not use clear text
> > > passwords, right? So we'll never be able to keep LDAP and Kerberos
> > > passwords in sync, right?
> >
> > The user enters a plaintext password on the client and that plaintext
> > password does traverse the network. The server-side will have the
> > plaintext password. So, I think that the answers to your questions are:
> > Change Password does "use" clear text passwords. We will be able to
> > keep LDAP and Kerberos passwords in sync.
>
> So where does the conversion occurs from clear text to KerberosKey
> object. (I could learn this via a constructor usage search but I do
> not have an environment here.)
>
> BTW, SP and Triggers are core level constructs. So I do not think that
> the clear text password reachs the core. But it's also a fact that
> Kerberos service itself can update LDAP password to keep both
> passwords in sync. So, adding an 'userPassword' update inside the
> Kerberos service's operation chain should not be hard.
>
> > While a plaintext password does traverse the network, it is over a
> > secure channel set up by the Change Password protocol in conjunction
> > with the Kerberos protocol.
> >
> > >
> > >> ...
> > >> > OK, so we'll have Triggers for modification type operations for the
> > >> > ou=Users based subtree. Is it reasonable to do this with an AFTER
> > >> > Trigger so that the Kerberos related attributes will be updated just
> > >> > after the entry has been added/modified? Because I'm not sure whether
> > >> > we'll support modification of request parameters inside triggered
> > >> stored
> > >> > procedures.
> > >>
> > >> I think this makes sense.
> > >
> > > Well, I have futher investigated this and saw that Kerberos related
> > > object class does not require the password related attribute to exist
> > > mandatorily. So it's ok to have an object class for Kerberos and not
> > > having the password attribute and adding the password attribute with
> > > another operation. So there is no pb here.
> >
> > OK, I see what you're saying. In fact, one of the major enhancements to
> > the 2nd version of Change Password was to add the ability to initialize
> > the password for a new user, from the client-side.
> >
> > Enrique
> >
> >
>
>
> --
> Ersin
>
--
Ersin
Re: LDAP Triggers use cases: Need for real world data
Posted by Enrique Rodriguez <en...@gmail.com>.
Ersin Er wrote:
...
> So where does the conversion occurs from clear text to KerberosKey
> object. (I could learn this via a constructor usage search but I do
> not have an environment here.)
>
> BTW, SP and Triggers are core level constructs. So I do not think that
> the clear text password reachs the core. But it's also a fact that
> Kerberos service itself can update LDAP password to keep both
> passwords in sync. So, adding an 'userPassword' update inside the
> Kerberos service's operation chain should not be hard.
...
The Change Password Protocol is comprised of a single Chain of
Responsibility using a MINA IoHandlerChain called the
ChangePasswordChain. In the ChangePasswordChain is an IoHandlerCommand
"link" called ProcessPasswordChange. In ProcessPasswordChange the
plaintext password is converted to a KerberosKey and stored in the DIT.
So, you are correct that currently the plaintext password does not reach
the core. What I'm picturing is that 4 things change:
1) The Change Password protocol simply passes the plaintext password to
the core.
2) The core handles the conversion of the plaintext password to 1..n
key types. Right now Change Password only creates a DES key and the
intent was to not handle additional key types in the protocol provider,
but rather to wait for triggers/SP's in the core to do the 1..n
conversions based on configuration.
3) Password policy enforcement also moves to the core, for reuse by
other mechanisms for password changes. Password policy is currently
enforced in the CheckPasswordPolicy IoHandlerCommand. There is a major
issue here that rejected passwords would need to result in error
handling that results in the proper Change Password error being returned
to the client.
4) Looking further down the road, yet relevant to your access control
work, passwords should be modifiable according to access control. Users
need to be able to change their own password and, additionally, admins
with proper rights need to be able to initialize and change passwords, too.
Enrique
Re: LDAP Triggers use cases: Need for real world data
Posted by Ersin Er <er...@gmail.com>.
Hi Emmanuel,
Thanks for the responses.
More to say inlined..
On 7/16/06, Enrique Rodriguez <en...@gmail.com> wrote:
> Ersin Er wrote:
> > On 7/15/06, Enrique Rodriguez <en...@gmail.com> wrote:
> >> Ersin Er wrote:
> >> > Enrique Rodriguez wrote:
> >> >> Ersin Er wrote:
> >> ...
> >> > So the Change Password Protocol provider is currently able to do this
> >> > generation/conversion but the Core and LDAP Protocol Provider are not
> >> > aware of this, right?
> >>
> >> Correct. Change Password protocol provider can also enforce password
> >> policy (minimum length, character mix, etc.) which at some point should
> >> be enforced globally.
> >
> > One more question: Change Password Protocol does not use clear text
> > passwords, right? So we'll never be able to keep LDAP and Kerberos
> > passwords in sync, right?
>
> The user enters a plaintext password on the client and that plaintext
> password does traverse the network. The server-side will have the
> plaintext password. So, I think that the answers to your questions are:
> Change Password does "use" clear text passwords. We will be able to
> keep LDAP and Kerberos passwords in sync.
So where does the conversion occurs from clear text to KerberosKey
object. (I could learn this via a constructor usage search but I do
not have an environment here.)
BTW, SP and Triggers are core level constructs. So I do not think that
the clear text password reachs the core. But it's also a fact that
Kerberos service itself can update LDAP password to keep both
passwords in sync. So, adding an 'userPassword' update inside the
Kerberos service's operation chain should not be hard.
> While a plaintext password does traverse the network, it is over a
> secure channel set up by the Change Password protocol in conjunction
> with the Kerberos protocol.
>
> >
> >> ...
> >> > OK, so we'll have Triggers for modification type operations for the
> >> > ou=Users based subtree. Is it reasonable to do this with an AFTER
> >> > Trigger so that the Kerberos related attributes will be updated just
> >> > after the entry has been added/modified? Because I'm not sure whether
> >> > we'll support modification of request parameters inside triggered
> >> stored
> >> > procedures.
> >>
> >> I think this makes sense.
> >
> > Well, I have futher investigated this and saw that Kerberos related
> > object class does not require the password related attribute to exist
> > mandatorily. So it's ok to have an object class for Kerberos and not
> > having the password attribute and adding the password attribute with
> > another operation. So there is no pb here.
>
> OK, I see what you're saying. In fact, one of the major enhancements to
> the 2nd version of Change Password was to add the ability to initialize
> the password for a new user, from the client-side.
>
> Enrique
>
>
--
Ersin
Re: LDAP Triggers use cases: Need for real world data
Posted by Enrique Rodriguez <en...@gmail.com>.
Ersin Er wrote:
> On 7/15/06, Enrique Rodriguez <en...@gmail.com> wrote:
>> Ersin Er wrote:
>> > Enrique Rodriguez wrote:
>> >> Ersin Er wrote:
>> ...
>> > So the Change Password Protocol provider is currently able to do this
>> > generation/conversion but the Core and LDAP Protocol Provider are not
>> > aware of this, right?
>>
>> Correct. Change Password protocol provider can also enforce password
>> policy (minimum length, character mix, etc.) which at some point should
>> be enforced globally.
>
> One more question: Change Password Protocol does not use clear text
> passwords, right? So we'll never be able to keep LDAP and Kerberos
> passwords in sync, right?
The user enters a plaintext password on the client and that plaintext
password does traverse the network. The server-side will have the
plaintext password. So, I think that the answers to your questions are:
Change Password does "use" clear text passwords. We will be able to
keep LDAP and Kerberos passwords in sync.
While a plaintext password does traverse the network, it is over a
secure channel set up by the Change Password protocol in conjunction
with the Kerberos protocol.
>
>> ...
>> > OK, so we'll have Triggers for modification type operations for the
>> > ou=Users based subtree. Is it reasonable to do this with an AFTER
>> > Trigger so that the Kerberos related attributes will be updated just
>> > after the entry has been added/modified? Because I'm not sure whether
>> > we'll support modification of request parameters inside triggered
>> stored
>> > procedures.
>>
>> I think this makes sense.
>
> Well, I have futher investigated this and saw that Kerberos related
> object class does not require the password related attribute to exist
> mandatorily. So it's ok to have an object class for Kerberos and not
> having the password attribute and adding the password attribute with
> another operation. So there is no pb here.
OK, I see what you're saying. In fact, one of the major enhancements to
the 2nd version of Change Password was to add the ability to initialize
the password for a new user, from the client-side.
Enrique
Re: LDAP Triggers use cases: Need for real world data
Posted by Ersin Er <er...@gmail.com>.
On 7/15/06, Enrique Rodriguez <en...@gmail.com> wrote:
> Ersin Er wrote:
> > Enrique Rodriguez wrote:
> >> Ersin Er wrote:
> ...
> > So the Change Password Protocol provider is currently able to do this
> > generation/conversion but the Core and LDAP Protocol Provider are not
> > aware of this, right?
>
> Correct. Change Password protocol provider can also enforce password
> policy (minimum length, character mix, etc.) which at some point should
> be enforced globally.
One more question: Change Password Protocol does not use clear text
passwords, right? So we'll never be able to keep LDAP and Kerberos
passwords in sync, right?
> ...
> > OK, so we'll have Triggers for modification type operations for the
> > ou=Users based subtree. Is it reasonable to do this with an AFTER
> > Trigger so that the Kerberos related attributes will be updated just
> > after the entry has been added/modified? Because I'm not sure whether
> > we'll support modification of request parameters inside triggered stored
> > procedures.
>
> I think this makes sense.
Well, I have futher investigated this and saw that Kerberos related
object class does not require the password related attribute to exist
mandatorily. So it's ok to have an object class for Kerberos and not
having the password attribute and adding the password attribute with
another operation. So there is no pb here.
> ...
> >> By using triggers we can address this need server-side, and not
> >> require any custom client side logic to derive keys from passwords.
> >> This will make the use of Apache Directory with Kerberos much easier.
> > More hints are welcome ;-) We may also have an IRC session on
> > implementing this. I'll finish the preliminary version of triggers for
> > playing with in a few days.
>
> I am really looking forward to this. This is going to make working with
> Kerberos way more user-friendly.
I will complete it very soon. I'm a bit busy daily stuff. It will be
nice to provide some solution with our baby system. :)
> Enrique
--
Ersin