Hi Fabio,
thank you for your reply :)
Maybe I should try to explain in more detail what I want to Achieve, to avoid
misunderstandings:
+------------------------------------------+
| |
| Syncope +---------------+ |
+--------+
| | | | |
|
| +---->| DB-Resource A |+---->| DB
A |
| | | | | |
|
| +--------------|--+ | | | |
|
| | LDAP Service | | +---------------+ |
+--------+
+---------+ | +--------------|--+ |
| | | | | | |
| Forum | Authentication | | CN=de,CN=co | | |
| +--------------------->| OU=Extern --+ | +---------------+ |
+--------+
| | | | | | | | | |
|
+---------+ | | +---->| DB-Resource B |+---->| DB
B |
| | | | | | |
|
| +-----------------+ | | | |
|
| +---------------+ |
+--------+
+------------------------------------------+
I Have a couple of registered users sparse across multiple postgresql databases.
There are now a couple of applications which these users need access to (i.e. a
forum).
To achieve this I want to setup an LDAP Service for authentication purposes
(read only access).
The user tables in the databases look as follows
+--------------------+
| email | password |
|--------------------|
| ... | ... |
+--------------------+
So according to your help I restarted setting up syncope:
1. Setup a DB Connector for Database A
2. Added a new Resource referencing Connector A called "Users DB A"
3. Created a Mapping for the Resource "Users DB A"
+----------------------------------------------------------------------------------------------------+
| entity | internal mapping types | Internal Attributes | External Attributes
| Mandatory | AccounId |
|--------+------------------------+---------------------+---------------------+-----------+----------|
| user | UserId | - | -
| true | YES |
| | | |
| | |
| user | Password | - | -
| - | - |
| | | |
| | |
| user | UserSchema | email | email
| true | - |
| | | |
| | |
| user | UserSchema | fullname | email
| true | - |
| | | |
| | |
| user | UserSchema | surname | email
| true | - |
| | | |
| | |
+--------+------------------------+---------------------+---------------------+-----------+----------+
4. Add a new LDAP Resource + Account Link
5. Added the sync tasks(this is the point where I'm stuck):
I've setup a task called "sync users A", which for now should do a full
reconciliation of Database A:
+---------------------------------------------+
| | |
| name | sync users A |
| | |
| resource name | Users DB A |
| | |
| action class | Default Sync Action |
| | |
| create new identities | check |
| | |
| updating identities | check |
| | |
| full reconcilliation | check |
| | |
+---------------------------------------------+
Then I edited the user template. To keep it simple all attributes were set to
email
+---------------------------------------------+
| Details Tab |
|---------------------------------------------|
| | |
| Username | email |
| | |
| password | password |
+---------------------------------------------+
| Attributes Tab |
|---------------------------------------------|
| | |
| email | email |
| | |
| fullname | email |
| | |
| surname | email |
| | |
| userId | email |
+---------------------------------------------+
| Resources Tab |
|---------------------------------------------|
| Selected Resources | Users DB A |
+---------------------------------------------+
Unforutunately no users are added during sync. see log:
Users [created/failures]: 0/0 [updated/failures]: 0/0 [deleted/failures]: 0/0
Roles [created/failures]: 0/0 [updated/failures]: 0/0 [deleted/failures]: 0/0
Users created:
Users updated:
Users deleted:
Roles created:
Roles updated:
Roles deleted:
I feel so close to solving this riddle, must be some little detail I'm missing.
Do you see what it could be?
Greetings Carlo
Am 10.06.2013 um 11:05 schrieb Fabio Martelli <[email protected]>:
> Il 10/06/2013 10:25, Giancarlo Dessena ha scritto:
>> So i reduced the default schema to just userid and password to see if it
>> could be a mapping error.
>> unfortunately I still get the errors :/
>>
>> Does anybody have a sample setup for the default standalone schema?
>
> Hi Giancarlo, I cannot understand your scenario.
> Are you trying to synchronize users between sql (postgresql) and ldap?
> May be I'm wrong but It seems that you have specified a single target
> resource to achieve this.
>
> Let me summarize (at high level abstraction) the steps to sync a db resource
> with an ldap resource:
> 1. add and configure your db connector
> 2. add a new resource referencing the connector above
> 3. create your mapping (DO NOT specify any AccountLink)
> 4. add and configure a new ldap connector
> 5. add a new resource referencing the ldap connector above
> 6. create your ldap mapping and specify the account link
>
> If you want to sync from resource A and propagate synced users on B you have
> to change the configuration of the A's user template by specifying B as the
> resource to be assigned by default to each synced user (resource tab of A's
> user template).
>
> If you want to sync from a DB resource you need a changelog column on your db.
> If you don't have any changelog column you cannot perform an incremental sync
> but just a full reconciliation (configure it on resource configuration).
> Please, consider that a full reconciliation won't synchronize delete
> operations.
>
> Go on step-by-step and let me know about your progress.
>
> Best regards,
> F.
>>
>> Greetings Carlo
>>
>> Am 07.06.2013 um 18:50 schrieb Giancarlo Dessena
>> <[email protected]>:
>>
>>> Okay did some research myself,
>>> I'm pretty sure that I'm just missing a little detail.
>>> I tried experimenting with trying to execute the propagation and
>>> synchronization tasks
>>> When I try to run the Propagation Task i got the following exception:
>>> org.identityconnectors.framework.common.exceptions.ConnectorException:
>>> Creation failed
>>>
>>> When I try to synchronize i get the following exception
>>> org.quartz.JobExecutionException: While syncing on connector [See nested
>>> exception: java.lang.IllegalArgumentException: Changelog column name
>>> configuration property is empty.]
>>>
>>>
>>> Some additional info to my setup:
>>> The connector I have configured connects against a postgresql database.
>>> The resource has been tried out with the action Classes
>>> DefaultPropagationAction and LDAPMembershipPropagationActions.
>>> I tried Setting and unsetting the account link to a custom OU.
>>> None of the above configuration changes got me near to populating the LDAP
>>> with the users from the database.
>>> I should point out that, besides adding the Connector and the Resource, no
>>> changes where made to the default setup of the Standalone package.
>>>
>>> I'm wondering if I'm missing some vital detail of the Syncope concept. When
>>> adding an external resource can I really expect it to be populated to the
>>> LDAP shipped within the default package?
>>>
>>> I'm totally lost here some hints would be nice
>>>
>>> Thank you
>>>
>>>
>>> Carlo :)
>>>
>>>
>>> Am 07.06.2013 um 14:09 schrieb Giancarlo Dessena
>>> <[email protected]>:
>>>
>>>> Hello everybody,
>>>>
>>>> I have to anticipate that I'm pretty new to LDAP and Syncope,
>>>> so please forgive me if I'm not using the right wording and/or have
>>>> misunderstood some of the concepts.
>>>>
>>>> Now to my problem:
>>>> I have an external database, which contains users that have to be
>>>> integrated into LDAP.
>>>> To do achieve this i have downloaded the the Syncope standalone package.
>>>> I have already setup a DB Connector which seems to work fine.
>>>> In the next step I have setup a resource that uses the previously defined
>>>> connector.
>>>> In User mapping i have set the Account link to 'uid=' + username +
>>>> ',ou=people,o=bk'
>>>> but when reloading the ldap tree the resource does not appear.
>>>>
>>>> Any suggestions what is going wrong here?
>>>>
>>>>
>>>> Greetings Carlo
>>>
>>
>