Re: ACI with groupdn to target multiple groups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On 5 Feb 2021, at 12:30, William Brown <wbrown@xxxxxxx> wrote:
> 
> 
> 
>> On 4 Feb 2021, at 22:23, Pierre Rogier <progier@xxxxxxxxxx> wrote:
>> 
>> Hi Nicolas, 
>> 
>> The documentation does not say that wildcard is supported in groupdn evaluation and I have not seen anything in the code that handles it.
>> IMHO The comment about group dn filter is a bit confusing:
>> the only place it is supported while evaluating groupdn is within the (filter) part when using the full ldap url notation (dn??scope?(filter)) but that is not really a wildcard but a substring or a presence ldap 
>> filter .
>> And I do not see how it could be implemented efficiently because
>> it would mean that either all groups are checked or that 
>>  something similar to the ismemberof plugin is used
>> (and that is neither scalable nor efficient).
>> Note: for user dn things are easier because there is a single bind dn   (and we can easily check if it matches).
>> 
> 
> <Snip>
> 
>> 
>>>> 
>>>> I'm not an English native speaker, so please forgive me if there's
>>>> mistakes in this e-mail.
>>>> 
>>>> OS : Fedora 30
>>>> 389ds version / build number : 1.4.1.14 / 2020.023.2226
>>>> 
>>>> I'm struggling with ACI and despite hours of documentation reading, I
>>>> don't understand how to make it work as I want.
>>>> 
>>>> Basic directory structure
>>>> ==================
>>>> dc=domain,dc=tld
>>>> |
>>>> +---ou=Servers
>>>>     |
>>>>     +---cn=proxy <---- here is where I add the ACI
>>>>         |
>>>>         +---cn=group1
>>>>         |
>>>>         +---cn=group2
>>>> ===================
>>>> Container "proxy" is a "iphost" object.
>>>> 
> 

Sorry for the messy email. I rewrote it a few times: This should be clearer.

A way to achieve this is with the memberOf plugin.

You enable memberOf plugin on your system. This means that members Of cn=group1,cn=proxy,ou=Servers,dc=domain,dc=tld would have that set into their account such as:

dn: uid=william,ou=people,dc=domain,dc=tld
...
memberOf: cn=group1,cn=proxy,ou=Servers,dc=domain,dc=tld


Then you can use:


(targetattr = "*") (target =
"ldap:///cn=proxy,ou=Servers,dc=domain,dc=tld";) (version 3.0;acl
"Allow only groups members to query this object";allow (all)
(userdn = "ldap:///ou=People,dc=domain,dc=tld??sub??(memberOf=cn=*,cn=proxy,ou=Servers,dc=domain,dc=tld)")
;)


I haven't tried this my self, but it should work. You'll need to make sure there is a substring index on memberOf. 



> 
> 
>
> Sincerely,
> 
> William Brown
> 
> Senior Software Engineer, 389 Directory Server
> SUSE Labs, Australia
> _______________________________________________
> 389-users mailing list -- 389-users@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to 389-users-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/389-users@xxxxxxxxxxxxxxxxxxxxxxx

—
Sincerely,

William Brown

Senior Software Engineer, 389 Directory Server
SUSE Labs, Australia
_______________________________________________
389-users mailing list -- 389-users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to 389-users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/389-users@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora User Discussion]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora News]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora QA]     [Fedora Triage]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Yosemite Photos]     [Linux Apps]     [Maemo Users]     [Gnome Users]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Maemo Users]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Fedora ARM]

  Powered by Linux