[ 
https://issues.apache.org/jira/browse/OAK-4087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15298182#comment-15298182
 ] 

angela commented on OAK-4087:
-----------------------------

attached a proposed fix including test-cases (doc update will follow) with the 
following implementation details:

- additional service tracker with {{ExternalPrincipalConfiguration}} listening 
for idp-synchandler mappings
- if dynamic membership is enabled the {{PrincipalProvider}} will be 
constructed with a lookup that allow to map IDP-names to auto-membership as 
configured by the corresponding sync-handler
- note: a given sync-handler configuration might consequently be used by 
multiple IDPs; incomplete mappings of idp/synchandler will be ignored; 
conflicting configurations will be logged
- upon {{PrincipalProvider.getPrincipals(String)}} and 
{{PrincipalProvider.getGroupPrincipals(Principal)}} the principals associated 
with the auto-membership entries (i.e. groupIDs) will additionally be added to 
the set of {{Principal}}. the configured auto-membership is determined based on 
the IDP as stored in {{rep:externalId}} and looked up from the map
- according to the behavior in full-sync mode, auto-membership entries that 
cannot be resolved to an existing {{Group}} will be ignored

[~tripod], i would appreciate if you could review it.

> Replace Sync of configured AutoMembership by Dynamic Principal Generation
> -------------------------------------------------------------------------
>
>                 Key: OAK-4087
>                 URL: https://issues.apache.org/jira/browse/OAK-4087
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: auth-external
>            Reporter: angela
>            Assignee: angela
>              Labels: performance
>         Attachments: OAK-4087.patch
>
>
> the {{DefaultSyncConfig}} comes with a configuration option 
> {{PARAM_USER_AUTO_MEMBERSHIP}} indicating the set of groups a given external 
> user must always become member of upon sync into the repository.
> this results in groups containing almost all users in the system (at least 
> those synchronized form the external IDP). while this behavior is straight 
> forward (and corresponds to the behavior in the previous crx version), it 
> wouldn't be necessary from a repository point of view as a given {{Subject}} 
> can be populated from different principal sources and dealing with this kind 
> of dynamic-auto-membership was a typical use-case.
> what does that mean:
> instead of performing the automembership on the user management, the external 
> authentication setup could come with an auto-membership {{PrincipalProvider}} 
> implementation that would expose the desired group membership for all 
> external principals (assuming that they were identified as such).
> [~tripod], do you remember if that was ever an option while building the 
> {{oak-auth-external}} module? if not, could that be worth a second thought 
> also in the light of OAK-3933?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to