14.4. Utilisation de SSO (Single Sign On) pour les applications web
Les fonctionnalités SSO (Single Sign On) sont fournies par les sous-systèmes web et Infinispan. Utilisez cette procédure pour configurer SSO dans les applications web.
Pré-requis
- Vous devez avoir un domaine de sécurité configuré qui gère les authentifications et autorisations.
- Le sous-système
infinispan
est présent dans le profilfull-ha
d'un domaine géré, ou en utilisant la configurationstandalone-full-ha.xml
dans un serveur autonome. - Le
web
cache-conteneur
et le cache-conteneur SSO doivent chacun être présents. Les exemples de fichiers de configurations contiennent déjà le cache-conteneurweb
, et certaines des configurations contiennent déjà le cache-conteneur SSO également. Utilisez les commandes suivantes pour vérifier et activer le cache conteneur SSO. Notez que ces commandes modifient le profilha
d'un domaine géré. Vous pouvez modifier les commandes pour utiliser un profil différent, ou supprimer la portion/profile=ha
de la commande, pour un serveur autonome.Exemple 14.1. Vérifier le cache-conteneur
web
Les profils et les configurations mentionnées ci-dessus incluent le cache-conteneurweb
par défaut. Utilisez la commande suivante pour vérifier sa présence. Si vous utilisez un profil différent, remplacez par son nom à la place deha
./profile=ha/subsystem=infinispan/cache-container=web/:read-resource(recursive=false,proxies=false,include-runtime=false,include-defaults=true)
Si le résultat affiche unsuccess
, le sous-système sera présent. Sinon, vous devrez l'ajouter.Exemple 14.2. Ajouter le cache-conteneur
web
Utilisez les trois commandes suivantes pour activer le cache-conteneurweb
à votre configuration. Modifiez le nom du profil selon le cas, ainsi que les autres paramètres. Ici, les paramètres sont ceux utilisés dans une configuration par défaut./profile=ha/subsystem=infinispan/cache-container=web:add(aliases=["standard-session-cache"],default-cache="repl",module="org.jboss.as.clustering.web.infinispan")
/profile=ha/subsystem=infinispan/cache-container=web/transport=TRANSPORT:add(lock-timeout=60000)
/profile=ha/subsystem=infinispan/cache-container=web/replicated-cache=repl:add(mode="ASYNC",batching=true)
Exemple 14.3. Vérifier le cache-conteneur
SSO
Éxécutez la commande de Management CLI suivante :/profile=ha/subsystem=infinispan/cache-container=web/:read-resource(recursive=true,proxies=false,include-runtime=false,include-defaults=true)
Cherchez une sortie qui ressemble à ceci :"sso" => {
Si vous ne la trouvez pas, le cache-conteneur ne sera pas présent dans votre configuration.Exemple 14.4. Ajoutez le cache-conteneur
SSO
/profile=ha/subsystem=infinispan/cache-container=web/replicated-cache=sso:add(mode="SYNC", batching=true)
- Le sous-système
web
doit être configuré pour utiliser SSO. La commande suivante active SSO sur le serveur virtuel appelédefault-host
et le domaine de cookiesdomaine.com
. Le nom de cache estsso
, et une nouvelle authentification est désactivée./profile=ha/subsystem=web/virtual-server=default-host/sso=configuration:add(cache-container="web",cache-name="sso",reauthenticate="false",domain="domain.com")
- Chaque application qui partage les informations SSO doit être configurée pour utiliser le même <security-domain> dans son descripteur de déploiement de
jboss-web.xml
et le même Realm dans son fichier de configurationweb.xml
.
Configurer sso
sous le sous-système web dans le profil utilisateur. La version ClusteredSingleSignOn
est utilisée quand l'attribut cache-container
est présent, sinon la classe SingleSignOn
sera utilisée.
Exemple 14.5. Exemple de configuration SSO clusterisée
/subsystem=web/virtual-server=default-host/sso=configuration:add(cache-container="web",cache-name="sso",reauthenticate="false",domain="domain.com")
Exemple 14.6. Exemple de configuration SSO non clusterisée
/subsystem=web/virtual-server=default-host/sso=configuration:add(reauthenticate="false")
Une application peut rendre invalide une session en invoquant la méthode javax.servlet.http.HttpSession.invalidate()
.