AD, CIFS, Synchro LDAP, kerberos,....

cancel
Showing results for 
Search instead for 
Did you mean: 
rgouyet
Member II

AD, CIFS, Synchro LDAP, kerberos,....

Bonjour,

J'essaie en vain depuis plusieurs jours de mettre en place une plateforme de test d'Alfresco 3.0 pour obtenir :
- authentification des utilisateurs à partir de notre contrôleur de domaine
- import et synchronisation automatique des comptes et groupe du domaine
- CIFS fonctionnel.
(je ne demande pas spécialement que la connexion soit automatique via NTLM)

Par le passé, version 1.4 et 2.1, j'avais réussi à faire fonctionner l'ensemble.
Depuis la 2.9, 3.0a et maintenant 3.0b, je n'y arrive plus.
Et pourtant, il me semble avoir bien parcouru les topics sur le sujet des forums français et anglais.

J'arrive à faire fonctionner les deux premiers points : authentification sur active directory et synchro des utilisateurs mais impossible d'avoir le CIFS fonctionnel.

J'obtiens systématiquement un message dans le log :
No valid CIFS authentication combination available
17:30:33,911 ERROR [org.alfresco.smb.protocol.auth] Either enable Kerberos support or use an authentication component that supports MD4 hashed passwords
17:30:33,921 ERROR [org.alfresco.smb.protocol] CIFS server configuration error, Invalid CIFS authenticator configuration

J'ai donc prit mon courage a deux mains et j'ai essayé de faire marcher kerberos.
En suivant cette doc du wiki :  http://wiki.alfresco.com/wiki/Enterprise_Security_and_Authentication_Configuration#JAAS_-_Java_Authe... , j'arrive à m'authentifier (via kerberos à priori) pour l'accès webclient.

La doc http://wiki.alfresco.com/wiki/Configuring_the_CIFS_and_web_servers_for_Kerberos/AD_integration semble être tout indiquée pour résoudre mon problème. Mais voilà, sauf erreur de ma part, cela ne semble pas bon encore une fois.
D'ailleurs, si on compare les deux pages de wiki citées plus haut, on est surprit de constater que pour l'accès Web, ce ne sont pas les mêmes explications.

Au final, rien ne marche comme souhaité. (pas d'accès du tout)

Je regrette que ma boîte ne soit pas prête à payer pour la version entreprise. Il me reste la communauté pour résoudre mes problème. Mais cette tâche est difficile car on n'est pas certains que toutes les infos que l'on trouve ici et là (wiki, forum, …) soient adaptées à la version que l'on essaie de faire fonctionner.
(il me semble que certaines infos sont parfois obsolètes, ce qui peut induire en erreur).

En parcourant les forums, il me semble que sur ces points (CIFS, AD, …) , beaucoup d'utilisateurs se retrouvent dans le même cas avec les versions 3.X.  Ca marchait avant en 2.1 et ce n'est plus le cas quand on passe aux dernières versions.

C'est très frustrant d'être bloqué, de ne pas pouvoir avoir de l'aide d'un interlocuteur compétent  même en payant des jetons de support éventuellement. Le prix d'entré aux versions "entreprise" est important pour des PME qui souhaiteraient utiliser cet outil.

C'est dommage, j'ai fait pas mal de lobying dans ma société pour utiliser cet outil. j'ai fait faire des développements à des stagiaires en 2.9 (car en 2.1, certaines fonctionnalités ne fonctionnaient pas). Je me retrouve à présent bloqué à ne pas pouvoir les libérer sur la future version d'Alfresco car les pré-requit (environnement AD + CIFS ne sont pas remplis).

Mes questions :

1) Est-ce que quelqu'un à réussi à faire fonctionner la version 3.0b dans un environnement windows avec authentification des utilisateurs à partir d'un AD + synchro des comptes + accès CIFS.

2) Alfresco ne peut-il pas mettre en place un système de support au jeton ?

Merci

Romain
6 Replies
michaelh
Active Member

Re: AD, CIFS, Synchro LDAP, kerberos,....

Bonjour,

J'arrive à faire fonctionner les deux premiers points : authentification sur active directory et synchro des utilisateurs mais impossible d'avoir le CIFS fonctionnel.
Et vous utilisez quoi comme "authenticator" ? Passthru ? Entreprise ?
on n'est pas certains que toutes les infos que l'on trouve ici et là (wiki, forum, …) soient adaptées à la version que l'on essaie de faire fonctionner.
C'est le défaut du wiki. On a mis en place un système de catégorisation pour bien montrer à quelle version s'applique les documents, mais les changements de configuration entre les séries 2 et ce qui vient après la 2.9 est difficile à appréhender parfois.
En parcourant les forums, il me semble que sur ces points (CIFS, AD, …) , beaucoup d'utilisateurs se retrouvent dans le même cas avec les versions 3.X.  Ca marchait avant en 2.1 et ce n'est plus le cas quand on passe aux dernières versions.
Par définition on trouve dans les forums principalement des descriptions de problème …
Je peux dire que j'ai configuré une version 3.0 avec AD dernièrement, et que ça fonctionnait.
Vous pouvez poster votre conf ?
C'est très frustrant d'être bloqué, de ne pas pouvoir avoir de l'aide d'un interlocuteur compétent  même en payant des jetons de support éventuellement. Le prix d'entré aux versions "entreprise" est important pour des PME qui souhaiteraient utiliser cet outil.
En même temps si on calcule le temps passé sur un problème, rapporté au coût du support, ça relativise beaucoup. On peut difficilement faire du "low-cost" sans rogner sur la valeur ajoutée, et je ne nous vois pas mettre en place un support à deux vitesses (pour reprendre une expression à la mode).
1) Est-ce que quelqu'un à réussi à faire fonctionner la version 3.0b dans un environnement windows avec authentification des utilisateurs à partir d'un AD + synchro des comptes + accès CIFS.
Oui, si ça peut vous rassurer.
2) Alfresco ne peut-il pas mettre en place un système de support au jeton ?
Il y a des éditeurs opensource qui ont fait ce choix, et sont très rapidement revenus en arrière. Tout le monde achetait le nombre de jetons minimum, et ça ne leur permettait absolument pas de vivre (sans compter le temps passé à dire "désolé, vous avez dépassé votre quota d'appels" - frustrant pour tout le monde). Coté Alfresco, la probabilité de voir ce type de système un jour est proche de zéro. On ne vend pas de service, on ne fait pas les formations et on ne fait pas de développement sur mesure. La souscription est donc le seul mode de financement viable (et c'est parce que le système fonctionne bien qu'on peut continuer à avancer si vite).
amine
Member II

Re: AD, CIFS, Synchro LDAP, kerberos,....

Voilà moi aussi j'ai eu des problèmes pour ouvrir la session sous AD et la synchro users AD.
pour ton problème les fichiers à modifier sont les suivants :

sur le chemin:   …\shared\classes\alfresco\extension:
Custom-repository.properties
ldap-authentication-context.xml       
ldap-authentication.properties
ldap-synchronisation.properties
ldap-synchronisation-context.xml


sur le chemin: webapps\alfresco\web-inf\classes\alfresco\

authority-services-context.xml

Pour CIFS j'ai pas de resultat .


si tu veux mes fichiers perso de config envoi moi un email.
rgouyet
Member II

Re: AD, CIFS, Synchro LDAP, kerberos,....

TEST DE LA VERSION 3.0B

Contents
1.   SCENARIO d’INSTALLATION
2.   PREMIER LANCEMENT   
3.   ENABLE NTML passtrough FOR SSO purpose   
4.   CIFS
5.     SYNCHRO LDAP

Version testée: Alfresco Labs 3.0b (Alfresco-Labs-3b-Full-Setup.exe)

Serveur : machine virtuelle Microsoft Virtual PC XP SP2 tournant sur le client VISTA.

Clients :
Vista + IE7,
Vista + Firefox 3.03,
Xp + IE6


1.   SCENARIO D’INSTALLATION

•   Installation de Alfresco-Labs-3b-Full-Setup.exe
        Choix de Mysql
        Malgré le choix de Java lors de l’installation, Java n’est pas installé.
•   Installation d’un JDK : jdk-1_5_0_08-windows-i586-p.exe
        Edition de SetPaths.bat pour mettre SET JAVA_HOME=c:\Program Files\Java\jdk1.5.0_08


2.   PREMIER LANCEMENT
Lancement d’Alfresco : alf_start.bat
Je suis automatiquement authentifié en guest.
Je me connecte en admin/admin : pas de problème.
Arrêt d’Alfresco : alf_stop.bat


Pour la suite, je m’inspire de cet excellent post : http://forums.alfresco.com/en/viewtopic.php?f=9&t=7750&st=0&sk=t&sd=a&sid=cfb25c1bc398a69d62f3d53969...

3.   ENABLE NTML PASSTROUGH FOR SSO PURPOSE

J’édite le fichier  :
c:\Alfresco\tomcat\webapps\alfresco\WEB-INF\web.xml

Je dé-commente la ligne :
<filter-class>org.alfresco.web.app.servlet.NTLMAuthenticationFilter</filter-class>
Et je commente la ligne
<filter-class>org.alfresco.web.app.servlet.AuthenticationFilter</filter-class>

Je dé-commente la ligne :
  <filter-class>org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter</filter-class>
Et je commente la ligne
<filter-class>org.alfresco.repo.webdav.auth.AuthenticationFilter</filter-class>
Plus bas dans le fichier, je dé-commente les lignes commentées à partir de
<!– For NTLM authentication support enable the following mapping –>

Ce qui me donne un fichier web.xml comme ceci :

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE web-app PUBLIC
  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
   <display-name>Alfresco Web Client</display-name>

   <description>Alfresco Web Client</description>

   <context-param>
      <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
      <param-value>true</param-value>
   </context-param>

   <context-param>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>server</param-value>
   </context-param>

   <context-param>
      <param-name>javax.faces.CONFIG_FILES</param-name>
      <param-value>/WEB-INF/faces-config-app.xml,/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-navigation.xml,/WEB-INF/faces-config-common.xml,/WEB-INF/faces-config-repo.xml,/WEB-INF/faces-config-wcm.xml,/WEB-INF/faces-config-custom.xml</param-value>
   </context-param>

   <context-param>
      <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
      <param-value>true</param-value>
   </context-param>

   <context-param>
      <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
      <param-value>false</param-value>
      <description>This is an EXPERIMENTAL feature, so leave it off for now!</description>
   </context-param>

   <context-param>
      <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
      <param-value>false</param-value>
      <description>Stop MyFaces from Serializing the state to the session</description>
   </context-param>

    <!– TODO: Change this to false for production –>
    <context-param>
        <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
        <param-value>true</param-value>
        <description>
            If true, rendered HTML code will be formatted, so that it is "human readable".
            i.e. additional line separators and whitespace will be written, that do not
            influence the HTML code.
            Default: "true"
        </description>
    </context-param>

    <context-param>
        <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
        <param-value>false</param-value>
        <description>
            If true, a javascript function will be rendered that is able to restore the
            former vertical scroll on every request. Convenient feature if you have pages
            with long lists and you do not want the browser page to always jump to the top
            if you trigger a link or button action that stays on the same page.
            Default: "false"
        </description>
    </context-param>

   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
         classpath:alfresco/application-context.xml
         classpath:alfresco/webscript-framework-application-context.xml
         classpath:alfresco/web-client-application-context.xml
         classpath:alfresco/web-scripts-application-context.xml
         classpath:alfresco/web-services-application-context.xml

         <!–
         To give final control over the tuning of the custom environment,
         the custom-web-context.xml file is processed last (note:
         custom-web-context.xml isn't part of the source tree itself).
         –>
         classpath*:alfresco/extension/custom-web-context.xml

      </param-value>
      <description>Spring config file locations</description>
   </context-param>

   <filter>
      <filter-name>Authentication Filter</filter-name>
      <!–
      <filter-class>org.alfresco.web.app.servlet.AuthenticationFilter</filter-class>
      –>
      <!– For Novell IChain support use the following filter –>
      <!–
        <filter-class>org.alfresco.web.app.servlet.NovellIChainsHTTPRequestAuthenticationFilter</filter-class>
      –>

      <!– For NTLM authentication support use the following filter –>
     
        <filter-class>org.alfresco.web.app.servlet.NTLMAuthenticationFilter</filter-class>
     
   </filter>

   <filter>
      <filter-name>WebDAV Authentication Filter</filter-name>
      <!–
      <filter-class>org.alfresco.repo.webdav.auth.AuthenticationFilter</filter-class>
      –>
     
      <!– For NTLM authentication support use the following filter –>
     
        <filter-class>org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter</filter-class>
     
   </filter>

   <filter>
      <filter-name>Admin Authentication Filter</filter-name>
      <filter-class>org.alfresco.web.app.servlet.AdminAuthenticationFilter</filter-class>
   </filter>

   <filter>
      <filter-name>MT WebScript Basic Authentication Filter</filter-name>
      <filter-class>org.alfresco.web.app.servlet.MTWebScriptAuthenticationFilter</filter-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.basic</param-value>
      </init-param>
   </filter>

   <filter>
      <filter-name>MT WebScript WC Authentication Filter</filter-name>
      <filter-class>org.alfresco.web.app.servlet.MTWebScriptAuthenticationFilter</filter-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.webclient</param-value>
      </init-param>
   </filter>

   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/faces/*</url-pattern>
   </filter-mapping>

   <!– For NTLM authentication support enable the following mapping –>
  
   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/navigate/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/command/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/download/*</url-pattern>
   </filter-mapping>
  
   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/template/*</url-pattern>
   </filter-mapping>
  
   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/n/*</url-pattern>
   </filter-mapping>
  
   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/c/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/t/*</url-pattern>
   </filter-mapping>
  
   <filter-mapping>
      <filter-name>Authentication Filter</filter-name>
      <url-pattern>/d/*</url-pattern>
   </filter-mapping>
  

   <filter-mapping>
      <filter-name>WebDAV Authentication Filter</filter-name>
      <url-pattern>/webdav/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Admin Authentication Filter</filter-name>
      <url-pattern>/faces/jsp/admin/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Admin Authentication Filter</filter-name>
      <url-pattern>/faces/jsp/categories/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Admin Authentication Filter</filter-name>
      <url-pattern>/faces/jsp/groups/*</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Admin Authentication Filter</filter-name>
      <url-pattern>/faces/jsp/users/delete-user.jsp</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Admin Authentication Filter</filter-name>
      <url-pattern>/faces/jsp/users/users.jsp</url-pattern>
   </filter-mapping>

   <filter-mapping>
      <filter-name>Admin Authentication Filter</filter-name>
      <url-pattern>/faces/jsp/admin/system-info.jsp</url-pattern>
   </filter-mapping>


   <!– for MT-context, force auth prior to WebScript binding
        for ST-context, pass through (or can explicitly comment out) –>

   <filter-mapping>
      <filter-name>MT WebScript Basic Authentication Filter</filter-name>
      <servlet-name>apiServlet</servlet-name>
   </filter-mapping>

   <filter-mapping>
      <filter-name>MT WebScript WC Authentication Filter</filter-name>
      <servlet-name>wcapiServlet</servlet-name>
   </filter-mapping>


   <listener>
      <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
   </listener>

   <listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
   </listener>
  
   <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>

   <listener>
      <listener-class>org.alfresco.web.app.ContextListener</listener-class>
   </listener>

   <!– Faces Servlet –>
   <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet>
      <servlet-name>uploadFile</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.UploadFileServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>uploadContent</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.UploadContentServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>downloadContent</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.DownloadContentServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>downloadRawContent</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.DownloadRawContentServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>guestDownloadContent</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.GuestDownloadContentServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>guestTemplateContent</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.GuestTemplateContentServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>externalAccess</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.ExternalAccessServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>templateContent</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.TemplateContentServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>commandServlet</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.CommandServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>ajaxServlet</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.ajax.AjaxServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>axis</servlet-name>
      <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
      <load-on-startup>5</load-on-startup>
   </servlet>

   <servlet>
      <servlet-name>CXFServlet</servlet-name>
      <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
      <load-on-startup>6</load-on-startup>
   </servlet>

   <servlet>
      <servlet-name>WebDAV</servlet-name>
      <servlet-class>org.alfresco.repo.webdav.WebDAVServlet</servlet-class>
      <init-param>
         <param-name>store</param-name>
         <param-value>workspace://SpacesStore</param-value>
      </init-param>
      <init-param>
         <param-name>rootPath</param-name>
         <param-value>/app:company_home</param-value>
      </init-param>
      <load-on-startup>5</load-on-startup>
   </servlet>

   <servlet>
      <servlet-name>apiServlet</servlet-name>
      <servlet-class>org.alfresco.web.scripts.servlet.WebScriptServlet</servlet-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.basic</param-value>
      </init-param>
   </servlet>

   <servlet>
      <servlet-name>wcapiServlet</servlet-name>
      <servlet-class>org.alfresco.web.scripts.servlet.WebScriptServlet</servlet-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.webclient</param-value>
      </init-param>
   </servlet>

   <servlet>
      <servlet-name>portalapiServlet</servlet-name>
      <servlet-class>org.alfresco.web.scripts.servlet.WebScriptServlet</servlet-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.webclient</param-value>
      </init-param>
   </servlet>

   <servlet>
      <servlet-name>facebookServlet</servlet-name>
      <servlet-class>org.alfresco.web.scripts.facebook.FacebookServlet</servlet-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.facebook</param-value>
      </init-param>
   </servlet>

   <servlet>
      <servlet-name>fbapiServlet</servlet-name>
      <servlet-class>org.alfresco.web.scripts.facebook.FacebookAPIServlet</servlet-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.facebook</param-value>
      </init-param>
   </servlet>

   <servlet>
      <servlet-name>proxyServlet</servlet-name>
      <servlet-class>org.alfresco.web.scripts.servlet.HTTPProxyServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>workflowDefinitionImageServlet</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.WorkflowDefinitionImageServlet</servlet-class>
   </servlet>

   <servlet>
      <servlet-name>JBPMDeployProcessServlet</servlet-name>
      <servlet-class>org.alfresco.web.app.servlet.JBPMDeployProcessServlet</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>uploadFile</servlet-name>
      <url-pattern>/uploadFileServlet</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>uploadContent</servlet-name>
      <url-pattern>/upload/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>downloadContent</servlet-name>
      <url-pattern>/download/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>downloadContent</servlet-name>
      <url-pattern>/d/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>downloadRawContent</servlet-name>
      <url-pattern>/dr</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>guestDownloadContent</servlet-name>
      <url-pattern>/guestDownload/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>guestDownloadContent</servlet-name>
      <url-pattern>/gd/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>templateContent</servlet-name>
      <url-pattern>/template/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>templateContent</servlet-name>
      <url-pattern>/t/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>guestTemplateContent</servlet-name>
      <url-pattern>/guestTemplate/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>guestTemplateContent</servlet-name>
      <url-pattern>/gt/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>externalAccess</servlet-name>
      <url-pattern>/navigate/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>externalAccess</servlet-name>
      <url-pattern>/n/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>commandServlet</servlet-name>
      <url-pattern>/command/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>commandServlet</servlet-name>
      <url-pattern>/c/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>ajaxServlet</servlet-name>
      <url-pattern>/ajax/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>axis</servlet-name>
      <url-pattern>/api/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>CXFServlet</servlet-name>
      <url-pattern>/cmis/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
        <servlet-name>WebDAV</servlet-name>
        <url-pattern>/webdav/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>apiServlet</servlet-name>
      <url-pattern>/service/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>apiServlet</servlet-name>
      <url-pattern>/s/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>wcapiServlet</servlet-name>
      <url-pattern>/wcservice/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>wcapiServlet</servlet-name>
      <url-pattern>/wcs/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>portalapiServlet</servlet-name>
      <url-pattern>/168service/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>portalapiServlet</servlet-name>
      <url-pattern>/168s/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>facebookServlet</servlet-name>
      <url-pattern>/facebook/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>facebookServlet</servlet-name>
      <url-pattern>/fb/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>fbapiServlet</servlet-name>
      <url-pattern>/fbservice/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>fbapiServlet</servlet-name>
      <url-pattern>/fbs/*</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>proxyServlet</servlet-name>
      <url-pattern>/proxy</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>JBPMDeployProcessServlet</servlet-name>
      <url-pattern>/jbpm/deployprocess</url-pattern>
   </servlet-mapping>

   <servlet-mapping>
      <servlet-name>workflowDefinitionImageServlet</servlet-name>
      <url-pattern>/workflowdefinitionimage/*</url-pattern>
   </servlet-mapping>

   <session-config>
      <session-timeout>60</session-timeout>
   </session-config>

   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>

   <error-page>
      <exception-type>java.lang.Exception</exception-type>
      <location>/jsp/error.jsp</location>
   </error-page>

</web-app>


Je renomme le fichier ntlm-authentication-context.xml.sample en ntlm-authentication-context.xml.
Je l’édite et je remplace
      <property name="useLocalServer">
            <value>true</value>
        </property>
Par
      <property name="servers">
          <value>WINDOWSDOMAIN\domainControllerIPorHostname</value>
        </property>

En remplaçant bien entendu WINDOWSDOMAIN par le nom de mon DOMAINE et domainControllerIPorHostname par l’adresse IP de mon serveur.


J’ai aussi essayé avec à la place :
   
 <property name="domain">
          <value> WINDOWSDOMAIN</value>
     </property>
Le comportement est identique.
Je redémarre Alfresco.

Je saisie l’adresse http://monserveur:8080/alfresco
Dans Firefox 3.03 et IE7, j’obtiens une fenêtre popup (authentification http) qui me demande de m’authentifier. Je saisis mon compte de domaine, et je me retrouve connecté sur Alfresco avec ce compte là.
Arrêt d’Alfresco.

Pour ne pas avoir le popup sous VISTA-IE7, j’ai dû faire la manip décrite par nicolas dans ce post : http://forums.alfresco.com/fr/viewtopic.php?f=6&t=1218&start=0&st=0&sk=t&sd=a&hilit=ntlm+ie7#wrap
Et j’ai dû également ajouter l’adresse IP du serveur dans les « local intranet » d’IE7


A noter, dans le fichier de log, j’ai cette erreur :
09:55:07,681 ERROR [org.alfresco.smb.protocol.auth] No valid CIFS authentication combination available
09:55:07,681 ERROR [org.alfresco.smb.protocol.auth] Either enable Kerberos support or use an authentication component that supports MD4 hashed passwords
09:55:07,681 ERROR [org.alfresco.smb.protocol] CIFS server configuration error, Invalid CIFS authenticator configuration
org.alfresco.error.AlfrescoRuntimeException: Invalid CIFS authenticator configuration
   at org.alfresco.filesys.auth.cifs.EnterpriseCifsAuthenticator.initialize(EnterpriseCifsAuthenticator.java:389)
   at org.alfresco.jlan.smb.server.CIFSConfigSection.setAuthenticator(CIFSConfigSection.java:607)
   at org.alfresco.filesys.ServerConfigurationBean.processCIFSServerConfig(ServerConfigurationBean.java:884)
   at org.alfresco.filesys.ServerConfigurationBean.init(ServerConfigurationBean.java:549)
   at org.alfresco.filesys.ServerConfigurationBean.onApplicationEvent(ServerConfigurationBean.java:3098)
   at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
   at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:448)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

4.   CIFS

Je renomme le fichier existant file-servers-custom.xml en file-servers-custom.xml.keep
Je renomme le fichier file-servers-custom.xml.sample en file-servers-custom.xml

J’édite le fichier file-servers-custom.xml
Je change la ligne
<webpath>http://localhost:8080/alfresco/</webpath>
En remplaçant localhost par l’IP de ma machine virtuelle.


Je rajoute ce paragraphe :

   <config evaluator="string-compare" condition="CIFS Server">
    <serverEnable enabled="true" />
    <!– Insert here IP or hostname of this alfresco server, and the NT domain name in which you want to integrate–>
<host name="alfrescoServerIPorHostname" domain="WINDOWSDOMAIN" />
<comment>Alfresco CIFS Server</comment>
    <!– Set to the broadcast mask for the subnet –>
    <broadcast>255.255.255.255</broadcast>
    <sessionDebug flags="Negotiate,Socket" />
  </config>

J’édite la ligne
<host name="alfrescoServerIPorHostname" domain="WINDOWSDOMAIN" />
En remplaçant alfrescoServerIPorHostname par le nom ALFRESCO et en remplaçant WINDOWSDOMAIN avec le nom de mon domaine

Dans le bas du fichier, je laisse 
<authenticator type="alfresco">


Démarrage Alfresco
Erreurs dans le log
11:52:20,072 ERROR [org.alfresco.smb.protocol.auth] No valid CIFS authentication combination available
11:52:20,072 ERROR [org.alfresco.smb.protocol.auth] Either enable Kerberos support or use an authentication component that supports MD4 hashed passwords
11:52:20,082 ERROR [org.alfresco.smb.protocol] CIFS server configuration error, Invalid CIFS authenticator configuration
org.alfresco.error.AlfrescoRuntimeException: Invalid CIFS authenticator configuration
   at org.alfresco.filesys.auth.cifs.EnterpriseCifsAuthenticator.initialize(EnterpriseCifsAuthenticator.java:389)
   at org.alfresco.jlan.smb.server.CIFSConfigSection.setAuthenticator(CIFSConfigSection.java:607)
   at org.alfresco.filesys.ServerConfigurationBean.processCIFSServerConfig(ServerConfigurationBean.java:884)
   at org.alfresco.filesys.ServerConfigurationBean.init(ServerConfigurationBean.java:549)
   at org.alfresco.filesys.ServerConfigurationBean.onApplicationEvent(ServerConfigurationBean.java:3098)
   at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
   at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:448)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)


Aucune réponse sur le serveur au nom : ALFRESCO


5.   SYNCHRO LDAP
Je renomme les fichiers ldap-authentication-context.xml.sample en ldap-authentication-context.xml et ldap-synchronisation-context.xml.sample en ldap-synchronisation-context.xml

Je supprime ce paragraphe du fichier ldap-authentication-context.xml car je n’arrive pas à faire l’authentification via LDAP a cause du fait que le login est le champ sAMAccountName et que je n’arrive pas à trouver la chaîne ldap.authentication.userNameFormat correspondante.

<bean id="authenticationComponent"
          class="org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl"
          parent="authenticationComponentBase">
        <property name="LDAPInitialDirContextFactory">
            <ref bean="ldapInitialDirContextFactory"/>
        </property>
        <property name="userNameFormat">
            <!–
           
            This maps between what the user types in and what is passed through to the underlying LDAP authentication.
           
            "%s" - the user id is passed through without modification.
            Used for LDAP authentication such as DIGEST-MD5, anything that is not "simple".
           
            "cn=%s,ou=London,dc=company,dc=com" - If the user types in "Joe Bloggs" the authenticate as "cn=Joe Bloggs,ou=London,dc=company,dc=com"
            Usually for simple authentication. Simple authentication always uses the DN for the user.
           
            –>
            <value>${ldap.authentication.userNameFormat}</value>
        </property>
        <property name="nodeService">
            <ref bean="nodeService" />
        </property>
        <property name="personService">
            <ref bean="personService" />
        </property>
        <property name="transactionService">
            <ref bean="transactionService" />
        </property>  
        <property name="escapeCommasInBind">
            <value>${ldap.authentication.escapeCommasInBind}</value>
        </property>
        <property name="escapeCommasInUid">
            <value>${ldap.authentication.escapeCommasInUid}</value>
        </property>
    </bean>

J’édite le fichier ldap-authentication.properties :

Je modifie les lignes :
ldap.authentication.java.naming.provider.url=ldap://ip_serveur_AD:389
ldap.authentication.java.naming.security.authentication=SIMPLE
ldap.authentication.java.naming.security.principal=distinguishedName of my bind user
ldap.authentication.java.naming.security.credentials=password of my bind user



J’édite le fichier ldap-synchronisation.properties
Je mets à jour les lignes suivantes:
ldap.synchronisation.personQuery= je ne donne pas le detail de cette ligne
ldap.synchronisation.personSearchBase= je ne donne pas le detail de cette ligne
ldap.synchronisation.userIdAttributeName=sAMAccountName
ldap.synchronisation.defaultHomeFolderProvider=userHomesHomeFolderProvider
ldap.synchronisation.groupQuery=je ne donne pas le detail de cette ligne
ldap.synchronisation.groupSearchBase= je ne donne pas le detail de cette ligne
ldap.synchronisation.personType=organizationalPerson

Démarrage Alfresco
Quelques minutes plus tard, mes utilisateurs et mes groupes sont importés dans Alfresco : RAS

Au final, connexion OK, synchro OK mais CIFS non opérant.
michaelh
Active Member

Re: AD, CIFS, Synchro LDAP, kerberos,....

Bonjour,

Avec AD, essayez plutôt avec
<config evaluator="string-compare" condition="Filesystem Security">
        <authenticator type="enterprise">
</authenticator>
rgouyet
Member II

Re: AD, CIFS, Synchro LDAP, kerberos,....

J'ai donc modifié le fichier file-servers-custom.xml

Dans le log, j'obtiens toujours :
17:00:25,442 ERROR [org.alfresco.smb.protocol.auth] No valid CIFS authentication combination available
17:00:25,442 ERROR [org.alfresco.smb.protocol.auth] Either enable Kerberos support or use an authentication component that supports MD4 hashed passwords
17:00:25,453 ERROR [org.alfresco.smb.protocol] CIFS server configuration error, Invalid CIFS authenticator configuration
org.alfresco.error.AlfrescoRuntimeException: Invalid CIFS authenticator configuration
samr
Member II

Re: AD, CIFS, Synchro LDAP, kerberos,....

Bonjour

J'ai exactement le même problème (toujours avec la 3.0B) alors que l'authentification NTLM marchait très bien avec la 2.1. Quelqu'un saurait ce que c'est que cette histoire de 'MD4 hashed passwords' ?

Samuel