Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Open LDAP and group based permissions



  • We are evaluating ProGet and have some trouble with the ProGet Open LDAP configuration.

    It recognizes users and groups but not user and group relation. Therefore, mapping LDAP groups to permissions does not grant those permissions. It seems ProGet does not look for users in groups but for groups with users. This is the opposite from how our LDAP ID provider operates.
    Would you be able to help with troubleshooting this? We are currently and LDAP integrations would be essential.

    Thank you in advance and best regards,
    Sirko


  • inedo-engineer

    Hi @sirko_6724,

    Which OpenLDAP-based server are you currently using? We have seen that most OpenLDAP-based servers tend to use different attributes based on their configuration. By default we use the values suggested by OpenLdap, but you may need to modify them to suite your setup. With that said, ProGet looks up both ways; get groups from the user and get users for the group. In most operations, ProGet will first find the user, then load their groups, and then check if the user or user's groups for permissions.

    Typically the starting point is verify the LDAP attributes and queries are correct for your OpenLDAP based server. Can you also share what you have configured for your LDAP attributes and LDAP queries?

    Thanks,
    Dan



  • Hi Dan,

    thank you for your reply. Allow me to share more details below.
    They may help to tune the LDAP settings on ProGet side.

    Dummy user LDAP attributes from our LDAP server:

    dn: cn=service_accounts,ou=Departments,dc=innogames,dc=net
    objectClass: top
    objectClass: igDepartment
    cn: service_accounts
    description: Service Accounts maintained by System Administration
    
    dn: uid=proget-testuser,ou=People,dc=innogames,dc=net
    uid: proget-testuser
    mail: proget-testuser.it@innogames.fail
    sn: tokentest
    givenName: proget
    cn: proget testuser
    birthDate: 1970-01-01
    gidNumber: 31279
    uidNumber: 31279
    homeDirectory: /home/proget-testuser
    objectClass: top
    objectClass: person
    objectClass: organizationalPerson
    objectClass: inetOrgPerson
    objectClass: evolutionPerson
    objectClass: uidObject
    objectClass: igPerson
    objectClass: posixAccount
    igMemberOf: cn=service_accounts,ou=Departments,dc=innogames,dc=net # this is the relation attribute
    mailVerified: TRUE
    userPassword:: *SECRET*
    

    Current LDAP settings in ProGet:

    LDAP Connection Type: OpenLDAP/Generic LDAP
    Host: login.innogames.de
    Bind DN: cn=proget-test,ou=Applications,dc=innogames,dc=net
    Bind Password: ***
    User Search Base: dc=innogames,dc=net
    Users: (&(uid=%s)(igMemberOf=cn=proget-test,ou=Applications,dc=innogames,dc=net))
    List User's Groups: (&(objectClass=igDepartment)(member=%s))
    Group Search Base: ou=Departments,dc=innogames,dc=net
    Groups: (&(cn=%s)(objectClass=igDepartment))
    List Group's Members: (&(objectClass=inetOrgPerson)(igMemberOf=%s))
    User name Property Value: uid
    Display Name Value: displayName
    Email Property Value: mail
    Group Name Property Value: cn
    

    Screenshots to illustrate the missing user-group relation:

    look up user.png
    look up group.png

    Thank you again and best regards,
    Sirko


  • inedo-engineer

    Hi @sirko_6724,

    I now understand what you mean by our search pattern for a users' groups. ProGet does this in an attempt to reduce LDAP calls since we do not synchronize users and groups to ProGet. This allows us to make 1 LDAP call to get the groups. If we searched by user, we would then have to make a call to get the user and then X number of calls to load each group's details.

    Based on OpenLDAP's documentation, groups will include one or more member attributes. Based on the record you sent me, that may not be the case for you. Is it possible for you to add that to your directory?

    Thanks,
    Dan


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation