[keycloak-user] Cannot create user in LDAP/AD from Keycloak using Full Name User Federation Mapper - CN is empty

Marek Posolda mposolda at redhat.com
Wed Jan 27 09:50:32 EST 2016


If you're not in a hurry, it will be better to wait and put it into 
Keycloak 2.X. Right now, we are around feature freeze for 1.X and the 
MSAD password history support might mean a bit more refactoring and 
change in more places. And right now, we don't have much time to 
properly implement and test it due to other priority tasks TBH ;)

Marek

On 27/01/16 13:45, Edgar Vonk - Info.nl wrote:
> Ok will do. Thanks Marek!
>
> Regarding my password policies/history issue: I was trying to make my 
> it into a pull request for you but I have not finished quite yet. 
> Considering the upcoming refactoring I now wonder if that would be 
> worth the trouble at this stage? We are not in a big hurry with this 
> feature in any case.
>
> cheers
>
>> On 27 Jan 2016, at 13:38, Marek Posolda <mposolda at redhat.com 
>> <mailto:mposolda at redhat.com>> wrote:
>>
>> Yes, feel free to create JIRA for that.
>>
>> You're right. There is limitation, that at registration time, just 
>> username is available to LDAP federation provider. However it should 
>> be possible to handle this in mapper. Either we can create new mapper 
>> or add the option to current FullNameMapper, that it will use 
>> username as fallback if fullname is not yet available. LDAP doesn't 
>> have issue with renaming CN in later phase. This mapper shouldn't be 
>> hard to do, hopefully I can do it even in 1.9 or 1.10 release (not 
>> like your previous request for password history, which is a bit more 
>> tricky :) )
>>
>> For Keycloak 2.X we plan some refactoring of federation SPI and 
>> user's management. So hopefully we can handle it more properly and 
>> have all attributes available even during federation registration.
>>
>> Marek
>>
>>
>> On 27/01/16 13:25, Edgar Vonk - Info.nl <http://info.nl> wrote:
>>> Hi,
>>>
>>> I would like to use the Full Name User Federation Mapper to set the 
>>> CN attribute in Active Directory from Keycloak. If I am not mistaken 
>>> this is currently not possible in Keycloak because on creation of 
>>> the user the only thing that is available is the username and no 
>>> other user attributes (see UserFederationManager#addUser(RealmModel 
>>> realm, String username).
>>>
>>> Since the CN is mandatory it needs to be set during creation of the 
>>> user object in AD (and in any LDAP server).  With our current 
>>> configuration with the Full Name mapper enabled and configured to 
>>> map to the CN attribute we cannot create users from Keycloak since 
>>> the full name (as well as the first and last name) and hence the CN 
>>> are still empty on user creation:
>>>
>>> 10:03:56,246 ERROR 
>>> [org.keycloak.services.resources.ModelExceptionMapper] (default 
>>> task-5) Error creating subcontext [cn= 
>>> ,ou=Customers,dc=hf,dc=info,dc=nl]: 
>>> org.keycloak.models.ModelException: Error creating subcontext [cn= 
>>> ,ou=Customers,dc=hf,dc=info,dc=nl]
>>> at 
>>> org.keycloak.federation.ldap.idm.store.ldap.LDAPOperationManager.createSubContext(LDAPOperationManager.java:425)
>>> at 
>>> org.keycloak.federation.ldap.idm.store.ldap.LDAPIdentityStore.add(LDAPIdentityStore.java:75)
>>> at 
>>> org.keycloak.federation.ldap.LDAPUtils.addUserToLDAP(LDAPUtils.java:50)
>>> at 
>>> org.keycloak.federation.ldap.LDAPFederationProvider.register(LDAPFederationProvider.java:154)
>>> at 
>>> org.keycloak.models.UserFederationManager.registerWithFederation(UserFederationManager.java:56)
>>> at 
>>> org.keycloak.models.UserFederationManager.addUser(UserFederationManager.java:48)
>>> at 
>>> org.keycloak.services.resources.admin.UsersResource.createUser(UsersResource.java:190)
>>>
>>>
>>>
>>> If I am not mistaken the way Keycloak creates users is by first 
>>> creating an ‘empty’ user with only the username set and after that 
>>> the user is updated with all user attributes like firstname, last 
>>> name, email etc.
>>>
>>> The only workaround we can find is to add an attribute mapper that 
>>> maps the Keycloak username field to the CN LDAP/AD attribute. This 
>>> works ok but it different from how AD treats the CN which is as the 
>>> full name and not the user name.
>>>
>>> Shall I create a JIRA issue for this?
>>>
>>> cheers
>>>
>>>
>>> _______________________________________________
>>> keycloak-user mailing list
>>> keycloak-user at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20160127/13f7280f/attachment-0001.html 


More information about the keycloak-user mailing list