Recherche
...
| Bloc de code |
|---|
<component name="ecm.ldap.config">
<require>org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory</require>
<require>org.nuxeo.ecm.directory.sql.storage</require>
<extension target="org.nuxeo.ecm.directory.multi.MultiDirectoryFactory"
point="directories">
<directory name="userDirectory">
<!-- definition des sources de données pour les utilisateurs -->
<!-- schema utilise -->
<schema>user</schema>
<!-- attributs correspondant (dans le schema nuxeo) à l'identifiant et au mot de passe -->
<idField>username</idField>
<readOnly>false</readOnly>
<passwordField>password</passwordField>
<!-- déclaration de la source ldap, definie plus bas -->
<source name="ldapUserDirectory">
<subDirectory name="ldapUserDirectory"/>
</source>
<!-- declaration de la source locale que noux allons definir dans un auter point d'extension -->
<source name="sqlUserDirectory" creation="true">
<subDirectory name="sqlUserDirectory"/>
</source>
</directory>
</extension>
<extension target="org.nuxeo.ecm.directory.multi.MultiDirectoryFactory"
point="directories">
<directory name="groupDirectory">
<!-- définition des sources de données pour les groupes -->
<!-- schema utilise -->
<schema>group</schema>
<!-- attribut correspondant à l'identifiant du groupe (dans schema nuxeo) -->
<idField>groupname</idField>
<readOnly>false</readOnly>
<!-- déclaration de la source ldap pour les groupes, definie plus bas -->
<source name="ldapGroupDirectory">
<subDirectory name="ldapGroupDirectory"/>
</source>
<!-- déclaration de la source locale défini dans un autre fichier -->
<source name="sqlGroupDirectory" creation="true">
<subDirectory name="sqlGroupDirectory"/>
</source>
</directory>
</extension>
<extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory"
point="servers">
<!-- definition de la connexion ldap au serveur ldap-->
<server name="default">
<ldapUrl>ldap://ldap.univ-fr:389</ldapUrl>
<bindDn>cn=applis,ou=admin,dc=my-univ,dc=fr</bindDn>
<bindPassword>verySecret</bindPassword>
</server>
</extension>
<extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory"
point="directories">
<!--défintion de l'annuaire comme source de données utilisateur -->
<directory name="ldapUserDirectory">
<!-- utilise la connexion qu'on vient de définir juste avant -->
<server>default</server>
<schema>user</schema>
<idField>username</idField>
<passwordField>password</passwordField>
<searchBaseDn>ou=people,dc=my-univ,dc=fr</searchBaseDn>
<searchClass>person</searchClass>
<searchFilter>(&(!(eduPersonAffiliation=affiliate))(status=valide))</searchFilter>
<searchScope>onelevel</searchScope>
<readOnly>true</readOnly>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<querySizeLimit>0</querySizeLimit>
<creationBaseDn>ou=people,dc=u-bordeaux1,dc=fr</creationBaseDn>
<creationClass>top</creationClass>
<creationClass>person</creationClass>
<creationClass>organizationalPerson</creationClass>
<creationClass>inetOrgPerson</creationClass>
<rdnAttribute>uid</rdnAttribute>
<!-- mapping d'attributs, doit être en cohérence avec ce qui est stipulé dans le fichier esup-login-config.xml
Dans notre exemple, on utilisait l'uid pour notre idp local, on fait donc un mapping avec l'uid) -->
<fieldMapping name="username">uid</fieldMapping>
<fieldMapping name="firstName">givenName</fieldMapping>
<fieldMapping name="lastName">sn</fieldMapping>
<fieldMapping name="company">supannEtablissement</fieldMapping>
<fieldMapping name="email">mail</fieldMapping>
<references>
<inverseReference field="groups" directory="groupDirectory"
dualReferenceField="members" />
</references>
</directory>
</extension>
<extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory"
point="directories">
<!-- on définit maintenant l'annuaire comme source de données de-->
<directory name="ldapGroupDirectory">
<!-- connexion utilisee -->
<server>default</server>
<!-- schema utilise -->
<schema>group</schema>
<!--attribut correspondant à l'identifiant (dans schema nuxeo) -->
<idField>groupname</idField>
<searchBaseDn>ou=groups,dc=my-univ,dc=fr</searchBaseDn>
<searchFilter>(&(objectClass=groupOfNames)(cn=groupes:my-univ:Personnels:*))</searchFilter>
<searchScope>subtree</searchScope>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<querySizeLimit>10000</querySizeLimit>
<creationBaseDn>ou=grouper,dc=u-bordeaux1,dc=fr</creationBaseDn>
<creationClass>top</creationClass>
<creationClass>groupOfUniqueNames</creationClass>
<rdnAttribute>cn</rdnAttribute>
<!-- Mapping entre attributs du schema nuxeo et attributs de l'annuaire -->
<fieldMapping name="groupname">cn</fieldMapping>
<references>
<ldapReference field="members" directory="ldapUserDirectory"
forceDnConsistencyCheck="false"
staticAttributeId="member"
dynamicAttributeId="memberURL" />
<ldapReference field="subGroups" directory="ldapGroupDirectory"
forceDnConsistencyCheck="false"
staticAttributeId="uniqueMember"
dynamicAttributeId="memberURL" />
<inverseReference field="parentGroups"
directory="groupDirectory" dualReferenceField="subGroups" />
</references>
</directory>
</extension>
</component>
|
...
| Bloc de code |
|---|
<?xml version="1.0"?>
<component name="org.nuxeo.ecm.directory.sql.storage">
<implementation />
<require>org.nuxeo.ecm.directory.sql.SQLDirectoryFactory</require>
<extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory"
point="directories">
<!-- definition de la source de données locale pour les utilisateurs déclarée dans le fichier précédent -->
<directory name="sqlUserDirectory">
<!-- schema utilise -->
<schema>user</schema>
<!-- data source -->
<dataSource>jdbc/nxsqldirectory</dataSource>
<table>users</table>
<idField>username</idField>
<passwordField>password</passwordField>
<passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
<autoincrementIdField>false</autoincrementIdField>
<dataFile>users.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
<querySizeLimit>15</querySizeLimit>
<references>
<inverseReference field="groups" directory="sqlGroupDirectory"
dualReferenceField="members" />
</references>
</directory>
<directory name="sqlGroupDirectory">
<!-- definition de la source de données locale pour les groupes déclarée dans le fichier précédent --> >
<schema>group</schema>
<dataSource>jdbc/nxsqldirectory</dataSource>
<table>groups</table>
<idField>groupname</idField>
<dataFile>groups.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
<autoincrementIdField>false</autoincrementIdField>
<!-- Add 10 min cache to avoid refetching the groups during login -->
<cacheTimeout>360</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<references>
<tableReference field="members" directory="userDirectory"
table="user2group" sourceColumn="groupId" targetColumn="userId" schema="user2group"
dataFile="user2group.csv" />
<tableReference field="subGroups" directory="sqlGroupDirectory"
table="group2group" sourceColumn="parentGroupId"
targetColumn="childGroupId" schema="group2group" />
<inverseReference field="parentGroups" directory="sqlGroupDirectory"
dualReferenceField="subGroups" />
</references>
</directory>
</extension>
</component>
|