Alfresco est un logiciel ECM/BPM.
Depuis la version 4.0, il permet facilement de configurer un SSO grace au sous-système d'authentification.
Les fichiers suivants sont nécessaires dans l'installation Alfresco :
alfresco-global.properties (ex: tomcat/shared/classes/alfresco-global.properties)share-config-custom.xml (ex: tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml)Le premier autorise la configuration du SSO pour la webapp Alfresco et l'autre pour la webapp partagée.
Éditer d'abord alfresco-global.properties et ajouter :
### SSO ### authentication.chain=external1:external external.authentication.enabled=true external.authentication.defaultAdministratorUserNames= external.authentication.proxyUserName= external.authentication.proxyHeader=Auth-User external.authentication.userIdPattern=
Éditer ensuite share-config-custom.xml et décommenter la dernière partie. Dans le "<endpoint>", changer la valeur de <connector-id> en alfrescoHeader et changer la valeur de <userHeader> en Auth-User :
<config evaluator="string-compare" condition="Remote"> <remote> <keystore> <path>alfresco/web-extension/alfresco-system.p12</path> <type>pkcs12</type> <password>alfresco-system</password> </keystore> <connector> <id>alfrescoCookie</id> <name>Alfresco Connector</name> <description>Connects to an Alfresco instance using cookie-based authentication</description> <class>org.alfresco.web.site.servlet.SlingshotAlfrescoConnector</class> </connector> <connector> <id>alfrescoHeader</id> <name>Alfresco Connector</name> <description>Connects to an Alfresco instance using header and cookie-based authentication</description> <class>org.alfresco.web.site.servlet.SlingshotAlfrescoConnector</class> <userHeader>Auth-User</userHeader> </connector> <endpoint> <id>alfresco</id> <name>Alfresco - user access</name> <description>Access to Alfresco Repository WebScripts that require user authentication</description> <connector-id>alfrescoHeader</connector-id> <endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url> <identity>user</identity> <external-auth>true</external-auth> </endpoint> </remote> </config>
Un redémarrage de Tomcat est nécessaire pour appliquer les changements.
Renseigner simplement l'en-tête Auth-User avec l'attribut qui contient le nom de login, par exemple $uid.
On peut intercepter les déconnexions avec cette règle : ^/share/page/dologout ⇒ logout_app_sso