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
)The first will allow one to configure SSO for the alfresco webapp, and the other for the share webapp.
É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