cancel
Showing results for 
Search instead for 
Did you mean: 

Chaîne d'authentification multiple et customisée

jc09
Champ in-the-making
Champ in-the-making
Bonjour,

Pour commencer, voici un schéma représentant la problématique d'authentification à laquelle je dois faire face par rapport à l'intégration d'Alfresco.

[img]http://easycaptures.com/fs/uploaded/354/3205637094.jpg[/img]

Pour faire simple, l'élément appelé OVD est utilisé comme un annuaire LDAP et le lien qu'il possède pour "taper" dans les différents annuaires décrits en dessous (dont AD par exemple) est déjà en place.
J'ai donc simplement besoin de configurer les 2 accès Alfresco : par l'UI et par le CIFS.

Selon les informations données sur cette page - Recommended combinations - je pense, dans un premier temps, que la combinaison qui se rapproche le plus de ma situation semble être dans la dernière colonne du tableau soit :

Authentication by LDAP Server
CIFS    Not supported
FTP    (authentication service)
NFS    (user name mapping)
UI    default authentication filter
WebDAV    default authentication filter
WebServices    (authentication service)
AuthenticationService    LDAP authentication component
LDAP Sync    Optional

Notes:

    * No password information is stored in alfresco. Authentication always takes place against the LDAP server.
    * The authentication filters will send passwords and user ids in the request header. Tickets are part of the request context.
    * FTP will send the password in plain text.
    * WebSevices will send passwords, user ids and tickets as part of the SOAP message.
    * CIFS is not generally supported (unless you can use the passthru configuration to AD or Samba). It could be possible to allow CIFS if the plain text password or MD4 hash were stored in the LDAP server - this is not currently supported and would require SSL to LDAP for passwrod security.
    * To create a secure environment you would need to use SSL for all web access (UI, WebDAV, WebServices) and disable FTP. You would need to use SSL between alfresco and LDAP for simple authentication or an appropriate SASL authentication mechanism such as digest-md5.
    * You may want to use SSL for LDAP synchronisation.

En résumé :
=> LDAP Authentication + synchronisation
=> CIFS en passthru avec AD

Dans un second temps, j'ai déjà commencé à regarder comment mes chaînes d'authentifications pourraient être mise en place en m'inspirant principalement des informations contenues dans ces pages : Alfresco Authentication Subsystems et Alfresco Subsystems.

Toutefois, je n'en ai pour le moment pas compris, ni maitrisés tous les tenants et aboutissants.
Hormis le fait de déclarer un fichier alfresco-global.properties en redéfinissant la propriété authentication.chain=instance_name1:type1,…,instance_namen:typen
et en déclarant chacun des "sous-systèmes" de la manière suivante alfresco/extension/subsystems/<category>/<type>/<id>/*.properties, je ne vois pas par le suite comment se fait le lien entre les différents sous-systèmes et donc leurs interactions dans la chaîne d'authentification.

Dans un troisième temps, j'ai pu constater qu'il y avait apparemment plusieurs façon de parvenir à modifier les chaînes d'authentification dans Alfresco notamment (toujours selon des pages wiki ou d'autres discussions sur le forum Alfresco) en modifiant directement les fichiers tels que : chaining-authentication-context.xml, ldap-authentication-context.xml, ldap-authentication.properties, ldap-synchronisation-context.xml, ldap-synchronisation.properties, file-servers-custom.xml, etc…

Pour finir, je tiens également à préciser quelques informations supplémentaires concernant l'environnement et la version de l'Alfresco que j'utilise :
=> Alfresco : il s'agit d'une version 3.0 Labs qui tourne sur un serveur linux debian etch dédié
=> Accès utilisateurs : postes fonctionnant sous Windows (pour l'utilisation du CIFS) et équipés de Firefox ou IE (en tant que Webclient)

Voilà, j'espère avoir été le plus clair et le plus précis possible, si des personnes de la communauté pouvaient m'aiguiller en me fournissant une configuration concrète d'Alfresco, fonctionnant et se rapprochant aus maximum de la configuration que je souhaite obtenir, je les en remercie à l'avance
2 REPLIES 2

maxmax
Champ in-the-making
Champ in-the-making
J'ai eu un cas où le besoin en cifs/ftp était primordial ainsi qu'une gestion aisée des utilisateurs.
On a opté pour la config la plus simple à mettre en place car possible dans ce cas : AD+NTLM+SSO.
Au final, on se retrouve avec une authentification ntlm… avec ses défauts, mais plus simple à gérer. L'authentification via sso+ntlm n'implique pas le besoin de chainer vu qu'il va considérer la liste de serveurs fournie par le ntlm-authentication.xml.   

les parties importantes de la config :

File-servers.xml

  <config evaluator="string-compare" condition="CIFS Server">
    <serverEnable enabled="true" />
       […]   
     <authenticator type="alfresco" />
   </config>

<config evaluator="string-compare" condition="Filesystem Security">
    <authenticator type="passthru">
<server>FR\xx-fr-01.xx.xx.xxx,xx-fr-01.xx.xx.xxx,FR\xx-fr-02.xx.xx.xxx,xx-fr-02.xx.xx.xxx</server>
      </authenticator>
   </config>

ntlm-authentication-context.xml


[…]

<bean id="authenticationComponent"
         class="org.alfresco.repo.security.authentication.ntlm.NTLMAuthenticationComponentImpl"
         parent="authenticationComponentBase">

       <property name="useLocalServer">
           <value>false</value>
       </property>
       <property name="servers">
           <value>NT_DOMAIN\fqdn,ip,NT_DOMAIN\fqdn,ip</value>
       </property>
       <property name="personService">
           <ref bean="personService" />
       </property>
       <property name="nodeService">
           <ref bean="nodeService" />
       </property>
       <property name="transactionService">
           <ref bean="transactionComponent" />
       </property>
       <property name="guestAccess">
           <value>false</value>
       </property>
   </bean>

Pour le côté synchro des utilisateurs, on garde la config ldap "classique", pas de particularité dans ce cas.
Pour le côté SSO : http://wiki.alfresco.com/wiki/3.0_Configuring_NTLM

Et voila.

jc09
Champ in-the-making
Champ in-the-making
Bon pour le moment j'ai réussi à obtenir la synchronisation et l'authentification (pour l'accès Web) sur plusieurs annuaires LDAP (ou branches) en même temps, cependant je reste toujours bloqué quant à la configuration du CIFS.

En ayant parcouru wiki et forum dans tous les sens, voire même les tickets JIRA remontés par certains, je n'arrive pas à m'authentifier lors de l'accès à Alfresco par CIFS… que j'utilise l'authenticator "passthru" ou l'authenticator "alfresco" avec le fichier ntlm-authentication-context.xml.

Quelqu'un aurait-il réussi à le faire fonctionner sur la version 3.0.0 Labs Stable ?

Merci d'avance


Pour répondre à maxmax :

- je présume que pour le cas te concernant, vous aviez finalement toutes les authentifications via NTLM (Web et CIFS), non ?
- l'utilisation de l'authenticator "passthru" pour le CIFS, nécessite-t-il réellement l'utilisation du fichier ntlm-authentification-context.xml ?
- pourrais-tu donner des exemples un peu plus précis pour les noms de domaine et les adresses IP des DomainController dans les fichiers de config  ?
- la base d'authentification utilisée est bien celle d'un AD ?

JC