Re: PasswordPolicy handling

2015-03-12 Thread Emmanuel Lécharny
Le 11/03/15 11:43, Ludovic Poitou a écrit :
>
> -- 
> Ludovic Poitou
> http://ludopoitou.com
>
>
> From: Emmanuel Lécharny 
> Reply: Apache Directory Developers List >
> Date: 10 Mar 2015 at 09:23:04
> To: Apache Directory Developers List >
> Subject:  PasswordPolicy handling  
>
> Hi guys, 
>
> this morning, we have had a quick discussion with Kiran that I will 
> retranscript here. Let me give you a bit of feedback first. 
>
> Yesterday, I was working on Studio, and more specifically on the 
> ApacheDS configuration PasswordPolicy page. I just wanted to add some 
> missing elements (a couple, pwdMinDelay and pwdMaxDelay). At some point, 
> I wondered how we could possibly associate a PP to an entry, assuming we 
> may define more than one PP, beside the default one. 
> Then I read the thread on the user list, where someone is having trouvle 
> defining a specific PP, and leverage it. The answer was to add a 
> pwdPolicySubEntry DN in each entry that has to use this added PP. Here 
> is an exemple : 
>
> dn: uid=jsmith,ou=users,ou=int,o=company 
> uid: jsmith 
> cn: jsmith 
> ... 
> pwdPolicySubEntry: 
> ads-pwdId=internalUsers,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,adsdirectoryServiceId=default,ou=config
>  
>
>
> The pwdPolicySubEntry attribute should be read-only, and thus should not be 
> set by administrators.
>
> It should be set by the server to indicate which PP is enforced for a 
> specific user.

This is my thought too. Sadly, this is not what we enforce atm.
>
>
>
>
>
>
>
> No need to say that it's extremelly heavy when you have thousands of users. 
> I’ve yet to see a customer who wants to define a different password policy 
> for each user.

That's not the use case. Our use case is different : sets of users using
a different PP. As we only suport the automatic enforcement of the
default PP, if one define a different PP, then each user's entry has to
be updated to have the new PP's DN. Insane...

>
>
>
> Now, let me relate what we discussed with Kiran : 
>
> The RFC draft states that PP must be define in subentry : 
>
> "A password policy is defined for a particular subtree of the DIT by adding 
> to an LDAP subentry whose immediate superior is the root of the subtree" 
>
> By all means, it's equivalent to what we have for Collective Attributes, 
> Subschema Subentries, Access Control, Triggers. The DIT area impacted by such 
> a subentry would be defined by the subentry SubtreeSpecification, and each 
> entry below the subentry's parent would be evaluated accordingly to the 
> SubtreeSpecification. The pwdPolicySubEntry attribute would be added on the 
> fly when the entry is requested, not added into the entry itself. 
> Exactly.
>
>
>
> This would be a huge chenge is the way we currently handle PP, as we do it 
> through the cn=config partition. 
>
> My perception is that PP should not be stored in the configuration at all, 
> but Kiran perception is that would make it quite complicated to administrate 
> the server, especially when most of the users would have only one PP. 
>
> I agree with Kiran on this point. 
>
> Now, what are the possible path for a better handling of PPs ? Here are a few 
> suggestions : 
> - the default PP should remain in the configuration. It will be associated 
> with the rootDSE, and apply to the whole DIT 
> - thid default PP could be disabled, if needed 
> - regarding new PP, we have two options : 
> - we keep declaring them in the confing, but they are translated to a 
> subentry at startup (we have to add a DN to the PP in config) 
> - we remove the PP declaration in the config 
> (I personally find the first approach more appealing, as it allows users to 
> administrate the config globally, although it makes it more complex from the 
> code pov, as we have to update teh config when we add a new PP as a subentry. 
> That means the config generates a subentry, and updating the subentry update 
> the config. Not exactly simple...). 
> - we most certainly have to define a new administrative role for PP, and 
> handle subentries and teh way they are applied. That means we most certainly 
> have to create a new interceptor 
>
>
> Lot of works, for sure. 
>
> Thoughts ? 
>
>
> OpenDJ supports both global PP that are defined as part of the configuration, 
> and custom password policies that are defined in the DIT as SubEntries, and 
> assigned to specific users directly, or through CollectiveAttributes.
The option of mixing both model (ie, config + subentries) is available.
I tend to think that a pure model (either every PP as subentries, or all
of them in config) is probably easier to manage.

Regarding CollectivAttributes, what the point using them to manage PPs ?
The subentry mechanism applies to both class of roles, I'm not sure
using CA to implement PP makes a lot of sense... In fact, that would
introduce an indirection, where you will need to fetch the CA, and then
fetch the associated PP to enforce the PP for each entr

Re: PasswordPolicy handling

2015-03-12 Thread Kiran Ayyagari
On Thu, Mar 12, 2015 at 3:33 PM, Emmanuel Lécharny 
wrote:

> Le 11/03/15 11:43, Ludovic Poitou a écrit :
> >
> > --
> > Ludovic Poitou
> > http://ludopoitou.com
> >
> >
> > From: Emmanuel Lécharny 
> > Reply: Apache Directory Developers List >
> > Date: 10 Mar 2015 at 09:23:04
> > To: Apache Directory Developers List >
> > Subject:  PasswordPolicy handling
> >
> > Hi guys,
> >
> > this morning, we have had a quick discussion with Kiran that I will
> > retranscript here. Let me give you a bit of feedback first.
> >
> > Yesterday, I was working on Studio, and more specifically on the
> > ApacheDS configuration PasswordPolicy page. I just wanted to add some
> > missing elements (a couple, pwdMinDelay and pwdMaxDelay). At some point,
> > I wondered how we could possibly associate a PP to an entry, assuming we
> > may define more than one PP, beside the default one.
> > Then I read the thread on the user list, where someone is having trouvle
> > defining a specific PP, and leverage it. The answer was to add a
> > pwdPolicySubEntry DN in each entry that has to use this added PP. Here
> > is an exemple :
> >
> > dn: uid=jsmith,ou=users,ou=int,o=company
> > uid: jsmith
> > cn: jsmith
> > ...
> > pwdPolicySubEntry:
> ads-pwdId=internalUsers,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,adsdirectoryServiceId=default,ou=config
> >
> >
> > The pwdPolicySubEntry attribute should be read-only, and thus should not
> be set by administrators.
> >
> > It should be set by the server to indicate which PP is enforced for a
> specific user.
>
> This is my thought too. Sadly, this is not what we enforce atm.
> >
> >
> >
> >
> >
> >
> >
> > No need to say that it's extremelly heavy when you have thousands of
> users.
> > I’ve yet to see a customer who wants to define a different password
> policy for each user.
>
> That's not the use case. Our use case is different : sets of users using
> a different PP. As we only suport the automatic enforcement of the
> default PP, if one define a different PP, then each user's entry has to
> be updated to have the new PP's DN. Insane...
>
> >
> >
> >
> > Now, let me relate what we discussed with Kiran :
> >
> > The RFC draft states that PP must be define in subentry :
> >
> > "A password policy is defined for a particular subtree of the DIT by
> adding to an LDAP subentry whose immediate superior is the root of the
> subtree"
> >
> > By all means, it's equivalent to what we have for Collective Attributes,
> Subschema Subentries, Access Control, Triggers. The DIT area impacted by
> such a subentry would be defined by the subentry SubtreeSpecification, and
> each entry below the subentry's parent would be evaluated accordingly to
> the SubtreeSpecification. The pwdPolicySubEntry attribute would be added on
> the fly when the entry is requested, not added into the entry itself.
> > Exactly.
> >
> >
> >
> > This would be a huge chenge is the way we currently handle PP, as we do
> it through the cn=config partition.
> >
> > My perception is that PP should not be stored in the configuration at
> all, but Kiran perception is that would make it quite complicated to
> administrate the server, especially when most of the users would have only
> one PP.
> >
> > I agree with Kiran on this point.
> >
> > Now, what are the possible path for a better handling of PPs ? Here are
> a few suggestions :
> > - the default PP should remain in the configuration. It will be
> associated with the rootDSE, and apply to the whole DIT
> > - thid default PP could be disabled, if needed
> > - regarding new PP, we have two options :
> > - we keep declaring them in the confing, but they are translated to a
> subentry at startup (we have to add a DN to the PP in config)
> > - we remove the PP declaration in the config
> > (I personally find the first approach more appealing, as it allows users
> to administrate the config globally, although it makes it more complex from
> the code pov, as we have to update teh config when we add a new PP as a
> subentry. That means the config generates a subentry, and updating the
> subentry update the config. Not exactly simple...).
> > - we most certainly have to define a new administrative role for PP, and
> handle subentries and teh way they are applied. That means we most
> certainly have to create a new interceptor
> >
> >
> > Lot of works, for sure.
> >
> > Thoughts ?
> >
> >
> > OpenDJ supports both global PP that are defined as part of the
> configuration, and custom password policies that are defined in the DIT as
> SubEntries, and assigned to specific users directly, or through
> CollectiveAttributes.
> The option of mixing both model (ie, config + subentries) is available.
> I tend to think that a pure model (either every PP as subentries, or all
> of them in config) is probably easier to manage.
>
> Regarding CollectivAttributes, what the point using them to manage PPs ?
> The subentry mechanism applies to both class of roles, I'm not sure
> u

Re: PasswordPolicy handling

2015-03-12 Thread Ashish
Wrong ML folks :)

On Thu, Mar 12, 2015 at 1:24 PM, Kiran Ayyagari  wrote:
> On Thu, Mar 12, 2015 at 3:33 PM, Emmanuel Lécharny 
> wrote:
>
>> Le 11/03/15 11:43, Ludovic Poitou a écrit :
>> >
>> > --
>> > Ludovic Poitou
>> > http://ludopoitou.com
>> >
>> >
>> > From: Emmanuel Lécharny 
>> > Reply: Apache Directory Developers List >
>> > Date: 10 Mar 2015 at 09:23:04
>> > To: Apache Directory Developers List >
>> > Subject:  PasswordPolicy handling
>> >
>> > Hi guys,
>> >
>> > this morning, we have had a quick discussion with Kiran that I will
>> > retranscript here. Let me give you a bit of feedback first.
>> >
>> > Yesterday, I was working on Studio, and more specifically on the
>> > ApacheDS configuration PasswordPolicy page. I just wanted to add some
>> > missing elements (a couple, pwdMinDelay and pwdMaxDelay). At some point,
>> > I wondered how we could possibly associate a PP to an entry, assuming we
>> > may define more than one PP, beside the default one.
>> > Then I read the thread on the user list, where someone is having trouvle
>> > defining a specific PP, and leverage it. The answer was to add a
>> > pwdPolicySubEntry DN in each entry that has to use this added PP. Here
>> > is an exemple :
>> >
>> > dn: uid=jsmith,ou=users,ou=int,o=company
>> > uid: jsmith
>> > cn: jsmith
>> > ...
>> > pwdPolicySubEntry:
>> ads-pwdId=internalUsers,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,adsdirectoryServiceId=default,ou=config
>> >
>> >
>> > The pwdPolicySubEntry attribute should be read-only, and thus should not
>> be set by administrators.
>> >
>> > It should be set by the server to indicate which PP is enforced for a
>> specific user.
>>
>> This is my thought too. Sadly, this is not what we enforce atm.
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > No need to say that it's extremelly heavy when you have thousands of
>> users.
>> > I’ve yet to see a customer who wants to define a different password
>> policy for each user.
>>
>> That's not the use case. Our use case is different : sets of users using
>> a different PP. As we only suport the automatic enforcement of the
>> default PP, if one define a different PP, then each user's entry has to
>> be updated to have the new PP's DN. Insane...
>>
>> >
>> >
>> >
>> > Now, let me relate what we discussed with Kiran :
>> >
>> > The RFC draft states that PP must be define in subentry :
>> >
>> > "A password policy is defined for a particular subtree of the DIT by
>> adding to an LDAP subentry whose immediate superior is the root of the
>> subtree"
>> >
>> > By all means, it's equivalent to what we have for Collective Attributes,
>> Subschema Subentries, Access Control, Triggers. The DIT area impacted by
>> such a subentry would be defined by the subentry SubtreeSpecification, and
>> each entry below the subentry's parent would be evaluated accordingly to
>> the SubtreeSpecification. The pwdPolicySubEntry attribute would be added on
>> the fly when the entry is requested, not added into the entry itself.
>> > Exactly.
>> >
>> >
>> >
>> > This would be a huge chenge is the way we currently handle PP, as we do
>> it through the cn=config partition.
>> >
>> > My perception is that PP should not be stored in the configuration at
>> all, but Kiran perception is that would make it quite complicated to
>> administrate the server, especially when most of the users would have only
>> one PP.
>> >
>> > I agree with Kiran on this point.
>> >
>> > Now, what are the possible path for a better handling of PPs ? Here are
>> a few suggestions :
>> > - the default PP should remain in the configuration. It will be
>> associated with the rootDSE, and apply to the whole DIT
>> > - thid default PP could be disabled, if needed
>> > - regarding new PP, we have two options :
>> > - we keep declaring them in the confing, but they are translated to a
>> subentry at startup (we have to add a DN to the PP in config)
>> > - we remove the PP declaration in the config
>> > (I personally find the first approach more appealing, as it allows users
>> to administrate the config globally, although it makes it more complex from
>> the code pov, as we have to update teh config when we add a new PP as a
>> subentry. That means the config generates a subentry, and updating the
>> subentry update the config. Not exactly simple...).
>> > - we most certainly have to define a new administrative role for PP, and
>> handle subentries and teh way they are applied. That means we most
>> certainly have to create a new interceptor
>> >
>> >
>> > Lot of works, for sure.
>> >
>> > Thoughts ?
>> >
>> >
>> > OpenDJ supports both global PP that are defined as part of the
>> configuration, and custom password policies that are defined in the DIT as
>> SubEntries, and assigned to specific users directly, or through
>> CollectiveAttributes.
>> The option of mixing both model (ie, config + subentries) is available.
>> I tend to think that a pure model (either every PP as subentries, or all

Re: PasswordPolicy handling

2015-03-12 Thread Emmanuel Lécharny
Le 12/03/15 09:11, Ashish a écrit :
> Wrong ML folks :)


Oops...