[midPoint] Active Directory quirks

Radovan Semancik radovan.semancik at evolveum.com
Wed Aug 15 09:58:56 CEST 2018


Hi,

Thank you for pointing that out. AD is indeed really strange LDAP 
server. I have made a quick documentation update. However, there is a 
lot of things that could be done to make life with AD easier. E.g.

1. We could implement ability to expand resource schema directly in 
midPoint schemaHandling. Then the configuration of connector operational 
attributes may not be needed.

2. There is indeed a lot to be documented about AD behavior. Even though 
this is technically not a "midPoint problem" but rather a "Microsoft 
problem", I would gladly document all that I know. I see that this is 
needed. But this task takes time and it needed to be prioritized. 
MidPoint (platform) subscription would be a significant motivation to 
prioritize this task.

3. That userAccountControl is really tricky attribute. Very non-LDAPish. 
There is a plan to support all the bits of userAccountControl in the 
connector. That would be perhaps the most convenient way. But again, 
there needs to be motivation to prioritize this task. In the meantime 
the rawUserAccountControlAttribute was requested by midPoint subscriber 
as a method that works for them. So here it is.

4. Actually, all the configuration properties of LDAP and AD connectors 
are reasonably well documented. However, the documentation is integrated 
with connector source code. E.g.:
https://github.com/Evolveum/connector-ldap/blob/master/src/main/java/com/evolveum/polygon/connector/ldap/AbstractLdapConfiguration.java
This method makes perfect sense for connector developers. If the 
documentation is bundled with the source code then there is a good 
chance that it stays reasonably up to date.
It would be really nice to automatically generate human-readable 
documentation out of this. It is perfectly feasible. But once again, 
this task was not selected as a priority by any midPoint platform 
subscriber.

MidPoint is a comprehensive software product in itself. And with all the 
connectors, plug-ins and customizations it is in fact quite a big living 
ecosystem. There are too many things that require attention of our team. 
And we have to prioritize the tasks. Therefore if you want to influence 
future of midPoint there are two good ways to do it: contribution or 
platform subscription.

-- 
Radovan Semancik
Software Architect
evolveum.com



On 08/15/2018 12:02 AM, Andrew Morgan wrote:
> I ran into a few Active Directory quirks when setting up the 
> AdLdapConnector (v1.6).  I think the wiki documentation could be 
> improved.
>
> First, I tried to map an attribute named "legacyExchangeDN", but 
> midPoint gave me an error because it isn't in the "user" objectclass:
>
> com.evolveum.midpoint.util.exception.SchemaException: Definition of 
> attribute legacyExchangeDN not found in object class 
> {http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}user 
> as defined in definition of 
> resource:724ba798-90cd-4c5a-bdf7-2ea7f1f6de3b(midPoint AD DEV)
>
> This attribute is allowed on user objects by Active Directory due to 
> the weird way AD adds auxiliary objectclasses.  The wiki page 
> (https://wiki.evolveum.com/display/midPoint/Active+Directory+with+LDAP+connector) 
> mentions this under "Active Directory LDAP Strangeness":
>
> "The objects can easily have attributes that are not defined in any 
> object classes that they have. E.g. a normal user (the user object 
> class) may have attribute info. If such extra attributes are used in 
> your AD instance then the best way is to define them explicitly in 
> Resource Schema Handling."
>
> I couldn't find any mention how to define them on the Resource Schema 
> Handling wiki page.  However, I found the workaround in MID-3379 
> (https://jira.evolveum.com/browse/MID-3379), which says to define it 
> as an oeprational attribute in the connector configuration.  This works:
>
> <icfcldap:operationalAttributes>legacyExchangeDN</icfcldap:operationalAttributes> 
>
>
> It would be nice if the note under "Active Directory LDAP Strangeness" 
> explicitly said this.
>
>
> Second, I wanted direct control over the userAccountControl attribute 
> so that I can create an AD account that is initially disabled, even 
> though the midPoint user is enabled.  I couldn't figure out how to do 
> this using administrativeStatus.  I was getting a strange error 
> message like "unable to map integer to boolean" when I adding an 
> outbound mapping for userAccountControl.  I eventually discovered this 
> connector configuration to disable the special handling of 
> userAccountControl:
>
> <icfcldap:rawUserAccountControlAttribute>true</icfcldap:rawUserAccountControlAttribute> 
>
>
> It would be great if there was documentation (wiki?) for all the 
> possible settings on the connectors.  I found this setting by 
> searching the mailing list and reading the source code of the connector.
>
> Thanks,
>
> Andy Morgan
> Systems Administrator, Identity & Access Management
> Information Services | Oregon State University
> 541-737-8877 | is.oregonstate.edu
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint





More information about the midPoint mailing list