[turba] ActiveSync -> LDAP - addressbook cannot be created because CN is missing

Michael J Rubinsky mrubinsk at horde.org
Tue Oct 17 03:34:18 UTC 2017


Quoting Jan Schneider <jan at horde.org>:

> Zitat von Oliver <oliverafg at gmx.de>:
>
>> Hello,
>>
>> I am using a few LDAP addressbooks, a few global read only books and
>> one personal addressbook.  
>>
>> The synchronisation from LDAP to ActiveSync devices works fine.
>> A new entry from the webfrontend to LDAP and the clients works fine.
>>
>> If I try to add a new entry on my cell phone, it isn't created in the
>> LDAP backend, because of a missing cn field. 
>>
>> I use the evolution schema 
>>
>> My relevant part of backends.local.php: 
>>
>> $_ldap_uid = $GLOBALS['registry']->getAuth('bare');
>> $_ldap_basedn = 'dc=kobosix,dc=lan';
>> $cfgSources['personal_ldap'] = array(
>>   'disabled' => false,
>>   'title' => _($_ldap_uid . " addressbook rw"),
>>   'type' => 'ldap',
>>   'params' => array(
>>   'server' => 'MYLDAPSERVER',
>>   'tls' => false,
>>   'root' => 'ou=' . $_ldap_uid . ',ou=Personal,ou=addressbook,' .
>> $_ldap_basedn,
>>   'bind_dn' => 'uid=' . $_ldap_uid . ',ou=User,ou=People,' . 			$_
>> ldap_basedn,
>>   'bind_password' => $GLOBALS['registry']-> 					getAuthCredential('
>> password'),
>>   'dn' => array('uid'),
>>   'objectclass' => array('top',
>>                          'person',
>>                          // 'turbaContact',
>>                          'inetOrgPerson',
>>                          // 'calEntry',
>> 		        'organizationalPerson',
>> 		 	'evolutionPerson'),
>>         'scope' => 'one',
>>         'charset' => 'utf-8',
>>         'version' => 3
>>     ),
>>     'map' => array(
>>         '__key' => 'dn',
>>         '__uid' => 'uid',
>>         // From horde.schema:
>>         // '__type' => 'turbaType',
>>         // '__members' => 'turbaMembers',
>> 	'name' => 'cn',https://bugs.horde.org/ticket/14678
>> 	'lastname' => 'sn',
>> 	'firstname' => 'givenname',
>> 	'namePrefix' => 'title',
>> 	'title' => 'businessRole',
>>
>> 	'photo' => 'jpegphoto',
>> 	'birthday' => 'birthdate',
>> 	'anniversary' => 'anniversary',
>> 	'spouse' => 'spouseName',
>> 	// 'children' => 'children', // still missing
>>         'company' => 'o',
>>         'department' => 'ou',
>>         'businessCategory' => 'businesscategory',
>>         'emails' => 'mail',
>>         'workPhone' => 'telephonenumber',
>> 	'fax' => 'facsimiletelephonenumber',
>> 	'companyPhone' => 'companyPhone',
>> 	'homePhone' => 'homephone',
>> 	'cellPhone' => 'mobile',
>> 	'carPhone' => 'carphone',
>> 	'pager' => 'pager',
>> 	'radioPhone' => 'radio',
>> 	'assistant' => 'assistantName',
>> 	'assistPhone' => 'assistantPhone',
>> 	'manager' => 'managerName',
>> 	'__tags' => 'categories',
>>         'workAddress' => 'postaladdress',
>> 	'workStreet' => 'street',
>> 	'workPostalCode' => 'postalcode',
>> 	'workCity' => 'l',
>> 	'workProvince' => 'st',
>> 	// 'workCountryFree' => 'c', // no LDAP backend yet
>> 	'homeAddress' => 'homepostaladdress',
>> 	'otherAddress' => 'otherPostalAddress',
>>         'notes' => 'note',
>>         'office' => 'roomNumber',
>>         'nickname' => 'displayName',
>>         'website' => 'labeledURI',
>>         'pgpPublicKey' => 'userCertificate',
>>         'smimePublicKey' => 'userSMIMECertificate',
>> 	'freebusyUrl' => 'freebusyuri',
>> 	// no LDAP backend field yet
>> 	// 'imaddress1' => 'imAddress', //no LDAP backend yet
>> 	// 'yomifirstname' => 'yomiFirstname' // no LDAP backend yet
>> 	// 'yomilastname' => 'yomiLastname' // no LDAP backend yet
>> 	// NO LDAP and horde backend yet but ActiveSync field
>> 	// 'yomicompanyname' => 'yomiCompanyName' 
>>     ),
>>     'search' => array(
>>         'name',
>>         'emails',
>>         'businessCategory',
>>         'title',
>>         'homePhone',
>>         'workPhone',
>> 	'cellPhone',
>> 	'carPhone',
>>         'homeAddress'
>>     ),
>>     'strict' => array(
>>         'dn', 'uid'
>>     ),
>>     'approximate' => array(
>>         'cn', 
>>     ),
>>     'export' => true,
>>     'browse' => true,
>> );
>>
>>
>> In my Driver.php "name" maps to "fileas" 
>>
>> The error in the activesync log is the following:
>>
>> [55906][2017-10-15T13:45:47+02:00] I:         Motojj
>> [55906][2017-10-15T13:45:47+02:00] ERR: Failed to add an object: 
>> [65] "Object class violation" 
>> DN: uid=20171015134547.zapb17bqWwoWnbh_kwmbHEZ at ...,
>>     ou=oliver,ou=Personal,ou=addressbook,dc=kobosix,dc=lan 
>>     (attributes: [a:7:s:2:"sn";s:6:"Tester";s:9:"givenname";			s:6
>> :"Motojj";s:6:"mobile";s:13:"+491222266644";
>> 	s:4:"note";s:1:"";s:4:"mail";s:2:",,";s:3:"uid";
>> 	s:53:"20171015134547.zapb17bqWwoWnbh_kwmbHEZ at ...";
>> 	s:11:"objectclass";a:5:{i:0;s:3:"top";i:1;s:6:"person";i:2;s:13
>> :"inetOrgPerson";i:3;s:20:"organizationalPerson";i:4;s:15:"evolutionPer
>> son";}}])
>>
>>
>> LDAP-Server complains about the missing CN field and indeed, there is
>> no CN field.
>>
>> At the moment I have no idea...
>>
>> Thanks and regards
>> Oliver
>
> From Turba's perspective, the 'name' attribute is required and  
> should always be set. I'd say it's Turba_Driver::fromASContact()'s  
> responsibility to set this attribute, if it hasn't been provided by  
> the AS message.
> Please file a bug report.

Yes, it looks like currently the turba 'name' attribute is obtained  
from the ActiveSync 'fileas' property. I guess this will have to be  
built dynamically, but I'm wondering what the best format for building  
it is. None of the *name properties from ActiveSync are guaranteed to  
be populated...


> -- 
> Jan Schneider
> The Horde Project
> https://www.horde.org/
>
> -- 
> turba mailing list
> Frequently Asked Questions: http://wiki.horde.org/FAQ
> To unsubscribe, mail: turba-unsubscribe at lists.horde.org



-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-keys
Size: 9272 bytes
Desc: PGP Public Key
URL: <https://lists.horde.org/archives/turba/attachments/20171017/c595c6a0/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 821 bytes
Desc: PGP Digital Signature
URL: <https://lists.horde.org/archives/turba/attachments/20171017/c595c6a0/attachment-0001.bin>


More information about the turba mailing list