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?
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:
Du point de vue de la sécurité, j'ai observé les arguments suivants:
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.
J'utilise l'option "Se connecter avec Google". Lorsque je clique sur Déconnexion, je vois ceci:
Remarques:
Quelques raisons avec lesquelles je ne suis pas à l'aise
Ils sont complètement déconnectés de leur fournisseur SSO
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.
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)
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.
Des questions comme celle-ci se posent lorsqu'il y a confusion quant à l'objectif du bouton "Déconnexion".
Quelques conditions préalables:
À 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:
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.