Scénario:
1) Le navigateur (utilisateur) demande une ressource au fournisseur de service (SP).
2) SP redirige (avec une demande SAML) vers le fournisseur d'identité (IdP).
3) Puisqu'il s'agit de la première connexion, l'utilisateur communique ses informations d'identification au (IdP).
4) Le PDI redirige ensuite le navigateur (avec la réponse SAML comprenant le jeton SAML) vers la page SP.
J'ai deux questions:
A. À l'étape 4, le navigateur stocke-t-il ou met-il en cache le jeton SAML Response et/ou SAML?
B. Si oui, quel genre de choses (attributs? Délais d'attente? Protocoles?) M'empêche de prendre ce jeton SAML stocké. Puis le copier sur un autre ordinateur (avec une nouvelle session) et utiliser ce jeton pour vous connecter au même SP?
La réponse est "en quelque sorte" sur la mise en cache. Dans votre scénario, la réponse sera envoyée par le biais de POST au fournisseur de services à partir du navigateur. Le navigateur peut donc "mettre en cache" les données POST qui contiennent la réponse SAML. Donc, comme n'importe quel autre événement POST dans les navigateurs, si l'utilisateur devait utiliser le bouton de retour suffisamment de fois après s'être connecté au SP pour revenir au POST événement, les données POST pourraient être renvoyées au SP.
Quelques éléments permettent d’empêcher la réponse de se faire détourner -
L'IDP stocke généralement un cookie de session sur le navigateur client identifiant la session SAML. Le vol de ce cookie de session n'est probablement pas plus protégé que tout autre cookie de session.
L'utilisation de HTTPS dans la communication entre SP et IDP fournira une bonne protection contre le détournement de session.
Pour la question A, cela dépend probablement du navigateur que vous utilisez.
Pour la question B, plusieurs mécanismes empêchent la réutilisation de la réponse SAML:
Vous pouvez lire les sections 4.1.4.3 et 4.1.4.5 de la spécification des profils SAML.
Je connais ce vieux message, mais la réponse est oui, le navigateur stocke le jeton SAML en tant que cookie. (En règle générale) Vous pouvez le voir dans la liste des cookies de votre navigateur, via divers inspecteurs de trafic/session tels que Fiddler, SAML Tracer sur FF, etc.