On 28/10/2015 19:12, Smith, Bruce (Mr) wrote:

Hi Francesco,

Thanks for the assistance.

I was configured for SHA1, I’ll switch over to AES and test. Sounds like it is probably that. The flow is Postgres DB -> Syncope -> AD using the LDAP connector to talk to the AD. The password comes out of the Postgres DB in clear text, so I assume Syncope is doing a SHA1 hash as the user is created and that isn’t reversible to get a clear password for the AD step.


For usage with AD, I'd suggest to replace the LDAP connector with the AD connector - see basic configuration info:

https://cwiki.apache.org/confluence/display/SYNCOPE/Configure+an+Active+Directory+resource

and configuration reference:

https://connid.atlassian.net/wiki/pages/viewpage.action?pageId=360482

With reference to the 2^nd issue, the internal storage is also Postgres,not MySQL.


Such issue with PostgreSQL was reported sometimes, but eventually solved; you can find some references here:

https://issues.apache.org/jira/browse/SYNCOPE-606
http://syncope.markmail.org/message/h6p6mo7e7u5ygv5

HTH
Regards.

*From:* Francesco Chicchiriccò [mailto:[email protected]]

*Sent:* Wednesday, October 28, 2015 3:26 PM
*To:* [email protected]
*Subject:* Re: __PASSWORD__ error on re-propagation to LDAP

On 27/10/2015 17:28, Smith, Bruce (Mr) wrote:

    Hi,

    My setup is successfully pulling users from a ScriptedSQL resource
    and links them to a LDAP resource. When the synchronization task
    first creates a user on AD via the LDAP resource, it goes through
    successfully. However if I go through the users and find those
    that weren't propagated to AD, because of missing OUs or
    containers, I cannot propagate because it complains about a
    missing mandatory attribute __PASSWORD__. It does this as well if
    I run the synchronization task with the Full Reconciliation button
    ticked to try and redo all the users that were missed.

    IllegalArgumentException: Not attempted because there are
    mandatory attributes without value(s): [__PASSWORD__]

    java.lang.IllegalArgumentException: Not attempted because there
    are mandatory attributes without value(s): [__PASSWORD__]

    If I look in the Syncope database, there is a password hash in the
    database table.

    Where should I be looking for this problem, at the connectors or
    resource definitions?


Essentially, your flow is LDAP -> Syncope -> AD, right?

Unless you have selected AES as cipher algorithm, Syncope will not have access to a cleartext password value to send to Active Directory, thus the error reported above.

Solution: set 'AES' for 'password.cipher.algorithm' under general configuration parameters.


    I’m picking up another error message if I try to delete a user, it
    pops up a red bar with "Cannot commit when autoCommit is enabled"
    and doesn’t delete the user. I think it is related to the LDAP
    resource because I get the same message if I remove the resource
    from the user. The user is deleted from the AD and if I close the
    edit user interface and reopen it, the resource is no longer
    allocated to the user. I can then delete the user successfully.
    This is more an annoyance right now than a major problem, but I’d
    like to resolve it.


Are you using MySQL for internal storage? This sounds like an inconsistency I've experienced before.
If so, be sure to work with InnoDB.


    The ScriptedSQL resource is set up to only allow propagation from
    the scripts into Syncope and I’ve only implemented the Schema,
    Sync, Search and Test scripts. The LDAP resource is set up to only
    allow propagation from Syncope to AD and not to create users and
    roles in Syncope if they exist only on the AD.

    I’d appreciate any help in guiding me here.


HTH
Regards.

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC
http://people.apache.org/~ilgrosso/

Reply via email to