Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LDAP] Support syncing user-group memberships with LDAP service #12785

Merged
merged 1 commit into from
Jul 24, 2021

Conversation

donatello
Copy link
Member

@donatello donatello commented Jul 24, 2021

Description

When configured in Lookup Bind mode, the server now periodically queries the
LDAP IDP service to find changes to a user's group memberships, and saves this
info to update the access policies for all temporary and service account
credentials belonging to LDAP users.

Motivation and Context

Extension to IDP polling to keep MinIO access credentials in sync with changes in the IDP's data about users.

How to test this PR?

IN PROGRESS

Update 7/24:

Use the ldap server setup at https://github.com/donatello/minio-ldap-testing -

create STS credential or service account for one of the LDAP users and try operations like:

  • Delete a group: ldapdelete -D 'cn=admin,dc=min,dc=io' -w admin cn=projecta,ou=groups,ou=swengg,dc=min,dc=io
  • Remove user from a group:
$ cat del-member.ldif
dn: cn=projectb,ou=groups,ou=swengg,dc=min,dc=io
changetype: modify
delete: member
member: uid=dillon,ou=people,ou=swengg,dc=min,dc=io
$ ldapmodify  -D 'cn=admin,dc=min,dc=io' -w admin -f del-member.ldif

After some time (5 minutes or so), the previously generated credential will have only permissions that apply given the membership changes or group deletions.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Optimization (provides speedup with no functional changes)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • Fixes a regression (If yes, please add commit-id or PR # here)
  • Documentation updated
  • Unit tests added/updated

When configured in Lookup Bind mode, the server now periodically queries the
LDAP IDP service to find changes to a user's group memberships, and saves this
info to update the access policies for all temporary and service account
credentials belonging to LDAP users.
@minio-trusted
Copy link
Contributor

Mint Automation

Test Result
mint-large-bucket.sh ✔️
mint-fs.sh ✔️
mint-gateway-s3.sh ✔️
mint-erasure.sh ✔️
mint-dist-erasure.sh ✔️
mint-zoned.sh ✔️
mint-gateway-nas.sh ✔️
mint-compress-encrypt-dist-erasure.sh ✔️
Deleting image on docker hub
Deleting image locally

Copy link
Member

@harshavardhana harshavardhana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM code wise - not tested

@harshavardhana harshavardhana merged commit de00b64 into minio:master Jul 24, 2021
@donatello donatello deleted the ldap-group-sync branch July 25, 2021 06:18
@donatello
Copy link
Member Author

Updated testing instructions above. Everything appears to work fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants