La connexion unique permet à l’utilisateur d’accéder à plusieurs systèmes après avoir fourni une seule fois ses informations d’identification (telles qu’un nom d’utilisateur et un mot de passe). Un système distinct (appelé l’authentificateur de confiance) effectue une authentification et fournit à Experience Manager les informations d’identification de l’utilisateur. Experience Manager vérifie les autorisations d’accès de l’utilisateur et les applique (c’est-à-dire qu’il détermine les ressources auxquelles l’utilisateur a accès).
Le service de gestion de l’authentification SSO (com.adobe.granite.auth.sso.impl.SsoAuthenticationHandler
) traite les résultats de l’authentification fournis par l’authentificateur de confiance. Le gestionnaire d’authentification SSO recherche un ssid (identifiant SSO) comme valeur d’un attribut spécial dans les emplacements suivants, dans cet ordre :
Lorsqu’une valeur est trouvée, la recherche est terminée et cette valeur est utilisée.
Configurez les deux services suivants pour identifier le nom de l’attribut qui stocke le ssid :
Vous devez spécifier le même nom d’attribut pour les deux services. L’attribut est inclus dans les SimpleCredentials
fournies dans Repository.login
. La valeur de l’attribut est inutile et ignorée. Sa simple présence est importante et vérifiée.
Pour configurer le SSO pour une instance AEM, vous devez configurer le gestionnaire d’authentification SSO :
Lorsque vous utilisez AEM, plusieurs méthodes permettent de gérer les paramètres de configuration pour ces services. Consultez la section Configuration d’OSGi pour plus de détails et connaître les pratiques recommandées.
Par exemple, pour l’ensemble NTLM :
Chemin d’accès : en fonction des besoins, par exemple, /
Noms d’en -tête : LOGON_USER
Format d’ID : ^<DOMAIN>\\(.+)$
où <*DOMAIN*>
est remplacé par votre nom de domaine.
Pour CoSign :
Chemin d’accès : en fonction des besoins, par exemple, /
Noms des en-têtes : remote_user
Format d’ID : AsIs
Pour SiteMinder :
/
Vérifiez que la connexion unique fonctionne selon vos besoins, y compris les autorisations.
Assurez-vous que les utilisateurs ne peuvent pas accéder à AEM directement si le SSO est configuré.
En demandant aux utilisateurs de passer par un serveur web exécutant l’agent de votre système, cela assure qu’aucun utilisateur ne peut directement envoyer un en-tête, un cookie ou un paramètre qui entraînerait son approbation par AEM, puisque l’agent va filtrer de telles informations si elles sont envoyées depuis l’extérieur.
Tout utilisateur pouvant accéder directement à votre instance AEM sans passer par le serveur web peut agir comme n’importe quel autre utilisateur en envoyant l’en -tête, le cookie ou le paramètre si les noms sont connus.
Assurez-vous également vous configurez uniquement les en-têtes, cookies et noms de paramètres de demandes requis pour votre configuration SSO.
La connexion unique est souvent utilisée avec LDAP.
Si vous utilisez également le dispatcher avec le serveur Microsoft Internet Information (IIS) une configuration supplémentaire sera nécessaire dans :
disp_iis.ini
Dans disp_iis.ini
, définissez les éléments suivants :
(Voir Installation du Dispatcher avec Microsoft Internet Information Server pour en savoir plus)
servervariables=1
(transmet des variables de serveur IIS comme en-têtes de requête à une instance distante)replaceauthorization=1
(remplace n’importe quel en-tête appelé « Authorization » autre que l’en-tête « De base » par son « De base » équivalent)Dans IIS :
Désactivez l’accès anonyme.
autoriser l’authentification intégrée de Windows
Vous pouvez voir quel gestionnaire d’authentification est appliqué à n’importe quelle section de l’arborescence de contenu à l’aide de l’option Authentificateur de la console Felix ; par exemple :
http://localhost:4502/system/console/slingauth
Le gestionnaire qui correspond le mieux au chemin est le premier à être appelé. Par exemple, si vous configurez le gestionnaire A pour le chemin /
/ et le gestionnaire B pour le chemin /content
, alors une demande à /content/mypage.html
appellera le gestionnaire B en premier.
Pour une demande de cookie (à l’aide de l’URL http://localhost:4502/libs/wcm/content/siteadmin.html
) :
GET /libs/cq/core/content/welcome.html HTTP/1.1
Host: localhost:4502
Cookie: TestCookie=admin
Utilisation de la configuration suivante :
Chemin : /
Noms d’en-têtes : TestHeader
Noms de cookies : TestCookie
Noms des paramètres : TestParameter
Format d’ID : AsIs
La réponse serait :
HTTP/1.1 200 OK
Connection: Keep-Alive
Server: Day-Servlet-Engine/4.1.24
Content-Type: text/html;charset=utf-8
Date: Thu, 23 Aug 2012 09:58:39 GMT
Transfer-Encoding: chunked
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Welcome to Adobe® CQ5</title>
....
Cela fonctionne également si vous demandez :
http://localhost:4502/libs/cq/core/content/welcome.html?TestParameter=admin
Vous pouvez également utiliser la commande curl suivante pour envoyer l’en-tête TestHeader
à admin:
curl -D - -H "TestHeader: admin" http://localhost:4502/libs/cq/core/content/welcome.html
Lorsque vous utilisez le paramètre de demande dans un navigateur, vous ne verrez qu’une partie du HTML, sans le CSS. C’est parce que toutes les demandes HTML sont effectuées sans paramètre de requête.
Lorsque vous utilisez le SSO, la connexion et la déconnexion sont traités en externe, de sorte que les liens de déconnexion d’AEM ne s’appliquent plus et doivent être supprimés.
Le lien de déconnexion sur l’écran de bienvenue peut être supprimé en suivant les étapes suivantes.
Recouvrez /libs/cq/core/components/welcome/welcome.jsp
sur /apps/cq/core/components/welcome/welcome.jsp
.
Supprimez la partie suivante du JSP.
<a href="#" onclick="signout('<%= request.getContextPath() %>');" class="signout"><%= i18n.get("sign out", "welcome screen") %>
Pour supprimer le lien de déconnexion disponible dans le menu personnel de l’utilisateur dans le coin supérieur droit, procédez comme suit :
Recouvrez /libs/cq/ui/widgets/source/widgets/UserInfo.js
sur /apps/cq/ui/widgets/source/widgets/UserInfo.js
.
Supprimez la partie suivante du fichier :
menu.addMenuItem({
"text":CQ.I18n.getMessage("Sign out"),
"cls": "cq-userinfo-logout",
"handler": this.logout
});
menu.addSeparator();