web-dev-qa-db-fra.com

SSO - Que doit-il se passer lorsque l'utilisateur clique sur "Déconnexion"

Nous ajoutons la possibilité pour les entreprises de configurer la connexion à notre application Web via des fournisseurs d'authentification unique externes (initialement via WS-FED, cependant, les futures versions prendront en charge des protocoles supplémentaires). L'authentification par nom d'utilisateur/mot de passe sera également disponible pour les clients qui n'ont pas/ne souhaitent pas configurer un fournisseur SSO externe, et également comme solution de rechange en cas de problème avec le fournisseur SSO.

Que doit-il se passer lorsque les utilisateurs cliquent sur le bouton "Déconnexion" de notre application?

  • Ils sont déconnectés de notre application uniquement afin que d'autres applications qui s'authentifient via le fournisseur SSO soient toujours disponibles.
  • Comme ci-dessus, mais nous demandons également une nouvelle authentification auprès du fournisseur SSO.
  • Ils sont complètement déconnectés de leur fournisseur SSO
6
Justin

C'est l'un de ces endroits où la convivialité et la sécurité provoquent des réponses radicalement différentes.

Du point de vue de l'utilisabilité, j'ai observé les arguments suivants:

  • Lorsque je me déconnecte Site a Je me déconnecte uniquement ici et je peux continuer à utiliser les autres emplacements auxquels je suis toujours connecté.
  • Lorsque j'appuie sur la déconnexion Site a je ne suis en fait redirigé que vers Site b (le portail) et seulement lorsque je me déconnecte du formulaire, je suis réellement déconnecté. (principalement utilisé dans le contexte d'un intranet ou d'un environnement similaire)

Du point de vue de la sécurité, j'ai observé les arguments suivants:

  • Lorsqu'un utilisateur fait une déconnexion, invalidez immédiatement TOUTES les sessions de cet utilisateur et déconnectez-le de tous les systèmes faisant partie du SSO.
  • Lorsqu'un utilisateur se déconnecte, informez le fournisseur SSO et n'autorisez aucune nouvelle session ni déconnexion de l'application en cours. mais il n'y a pas de déconnexion implicite à tous les systèmes du SSO. (généralement atténué par de courtes durées de session/durée de vie des cookies). Cela peut être une limitation technique en raison des technologies impliquées (et/ou des licences)
3
LvB

Il n'y a probablement pas de bonne réponse ici, mais je préconiserai que la "déconnexion" ne s'applique qu'à votre site.

Stack Exchange comme exemple

J'utilise l'option "Se connecter avec Google". Lorsque je clique sur Déconnexion, je vois ceci:

The logout "menu" in stack exchange

Remarques:

  1. Cela montre que je serai déconnecté de tous les domaines Stack Exchange.
  2. C'est mon choix de me déconnecter uniquement de cet appareil, ou de tous les appareils. (ce qui, je suppose, est supprimer-local-browser-cache vs invalidate-serverside-session).
  3. Après vous être déconnecté de SE, mon onglet gmail continue de fonctionner.

Quelques raisons avec lesquelles je ne suis pas à l'aise

Ils sont complètement déconnectés de leur fournisseur SSO

Convivialité

Je serais assez ennuyé si je me déconnecte de Stack Exchange sur mon ordinateur portable et découvrais plus tard que mon téléphone avait été expulsé de mon compte Google, ce qui me faisait manquer des courriels urgents, des chats, des documents Google non synchronisés, etc.

Sécurité

Si la déconnexion d'un service entraîne ma déconnexion du fournisseur SSO, cela pourrait-il être considéré comme un vecteur d'attaque par déni de service? Par exemple, un employé voyou de Stack Exchange peut-il demander à mon navigateur de me déconnecter de tous les services Google? Augmente-t-il l'impact des vulnérabilités XSS sur les sites tiers? c'est-à-dire que cela lie en aucune façon la sécurité de deux sites non liés simplement parce qu'ils utilisent le même fournisseur SSO? (Il faudrait que j'y réfléchisse un peu plus)

1
Mike Ounsworth

Dans la plupart des systèmes d'authentification SSO que j'ai utilisés, la déconnexion signifie généralement la déconnexion du fournisseur d'authentification et de tous les systèmes connectés.

Dans certaines applications mal écrites et système SSO, l'application peut mettre en cache l'authentification et peut ne pas remarquer que la session qu'ils utilisent a déjà expiré, mais l'application est censée revérifier périodiquement la validité de la session pour éviter que cette situation ne dure longtemps. Les meilleurs systèmes d'authentification unique sont capables de publier à nouveau dans les applications, pour les forcer à se déconnecter immédiatement plutôt que de dépendre de la vérification de l'application périodiquement.

1
Lie Ryan

Des questions comme celle-ci se posent lorsqu'il y a confusion quant à l'objectif du bouton "Déconnexion".

À quoi sert "Déconnexion"?

Quelques conditions préalables:

  • Côté utilisation, si l'utilisateur ne veut pas se déconnecter, il ne doit tout simplement pas utiliser ce bouton.
  • Si le site Web fournissant le bouton de déconnexion ne peut pas être approuvé, ce que la déconnexion fait réellement est théorique.
  • "Déconnexion" ne doit pas être confondu avec "Changer de compte". Même si "Changer de compte" peut être émulé en se déconnectant et en se reconnectant, l'utilisabilité de ce cas d'utilisation ne devrait pas être prioritaire dans la conception du bouton "Se déconnecter". Les problèmes d'utilisation qui surviennent en raison de l'absence d'un bouton "Changer de compte" sont exactement dus à cette absence de, et ce n'est pas la faute de ce que fait le bouton "Déconnexion".

À quoi sert "Déconnexion"?

Lorsque le navigateur est utilisé dans un PC physiquement partagé, l'utilisateur a besoin d'une certaine manière d'effacer ses sessions afin qu'un autre utilisateur qui utilise le même PC par la suite ne puisse pas également accéder aux mêmes sessions.

Par conséquent, la "Déconnexion" devrait:

  1. Invalider la session sur le site Internet utilisé
  2. Se déconnecter du fournisseur SSO

Si l'implémentation du bouton "Déconnexion" omet la deuxième puce, les autres utilisateurs peuvent simplement se reconnecter au site Web à l'aide de la session de fournisseur SSO toujours active.

Remarque: "Se déconnecter du fournisseur SSO" ne signifie pas se déconnecter immédiatement de tous les sites Web connectés à l'aide du même fournisseur SSO. Chaque site Web aura sa propre session indépendante, de sorte que certains sites peuvent être accessibles bien après la déconnexion du fournisseur SSO. La déconnexion de chaque site Web connecté en utilisant le même fournisseur SSO dépasse la portée du bouton "Déconnexion" d'un seul site Web.

0
antak