web-dev-qa-db-fra.com

À quoi sert un artefact SAML?

J'ai vu un tas d'organigrammes sur la façon dont il est transmis entre le fournisseur d'identité (IdP), le fournisseur de services (SP) et le navigateur via les redirections. Cependant, cela me semble inutile en ce moment, donc je sais que je manque quelque chose.

Quelqu'un peut-il me fournir un cas d'utilisation où un artefact SAML est requis (ou très utile) par rapport à ne pas en utiliser un?

Je vous remercie.

34
funa68

En règle générale, l'intention de la liaison d'artefact est de réduire le flux de messages SAML via le navigateur lui-même. Cela peut être dû à des restrictions de navigateur (navigateurs qui ont des limites sur la chaîne de requête/POST taille de la charge utile) ou à l'absence de prise en charge de JavaScript (pour les formulaires soumis automatiquement), ou même pour améliorer le modèle de sécurité de comment les messages SAML sont transportés. En utilisant des artefacts, les données sensibles acheminées via la déclaration d'assertion/d'attribut SAML ne sont pas transmises par le navigateur, elles peuvent donc être cachées à l'utilisateur final ou aux attaquants entre votre site et l'utilisateur final. Ces données confidentielles ne serait résolu directement qu'entre les sites via une recherche de canal arrière.

La section 3.6.2 du Spécifications des liaisons SAML 2. le résume le mieux:

La liaison HTTP Artifact est destinée aux cas dans lesquels le demandeur et le répondeur SAML doivent communiquer en utilisant un agent utilisateur HTTP en tant qu'intermédiaire, mais les limitations de l'intermédiaire empêchent ou découragent la transmission d'un message entier (ou échange de messages) via celui-ci. Cela peut être pour des raisons techniques ou en raison d'une réticence à exposer le contenu du message à l'intermédiaire (et si l'utilisation du cryptage n'est pas pratique). Notez qu'en raison de la nécessité de résoudre ultérieurement l'artefact à l'aide d'une autre liaison synchrone, telle que SOAP, un chemin de communication direct doit exister entre l'expéditeur et le destinataire du message SAML dans le sens inverse de la transmission de l'artefact (le destinataire du message et de l'artefact doit être en mesure de renvoyer une demande à l'émetteur de l'artefact). L'émetteur d'artefact doit également conserver son état pendant que l'artefact est en attente, ce qui a des implications pour les environnements à charge équilibrée.

65
Scott T.

S'étendant sur la réponse de Scott T, le profil d'artefact SAML a été conçu pour améliorer la sécurité. Pour empêcher un utilisateur de modifier le trafic intermédiaire de son assertion SAML (comme le changement de nom d'utilisateur, de rôles, etc.), SAML 2.0 suggère aux développeurs de signer des assertions via des signatures XML. Les signatures XML sont cependant extrêmement vulnérables aux attaques de wrapping XML en raison de problèmes dans toutes les langues des analyseurs XML existants. Visitez https://www.usenix.org/conference/usenixsecurity12/breaking-saml-be-whoever-you-want-be pour voir les attaques de wrapper XML en action contre les assertions SAML.

Le profil d'artefact SAML résout ce problème en créant un "artefact" à usage unique qui est transmis au fournisseur de services par l'utilisateur (via redirection ou publication) plutôt que l'assertion SAML. Lorsque le fournisseur de services reçoit l'artefact à usage unique, il envoie une demande de résolution d'artefact SAML (contenant l'artefact) au service de résolution d'artefacts (ARS) du fournisseur d'identité. L'ARS répond ensuite par une réponse d'artefact SAML (contenant l'assertion SAML de l'utilisateur), empêchant ainsi l'assertion SAML d'être modifiée par l'utilisateur car elle est directement reçue par le fournisseur de services sur un canal arrière.

28
dsutherland

Un message SAML est transmis d'une entité à une autre soit par valeur, soit par référence. Une référence à un message SAML est appelée un artefact . Le récepteur d'un artefact résout la référence en envoyant une demande directement à l'émetteur de l'artefact, qui répond ensuite avec le message réel référencé par l'artefact.

Voir SAML 2. ,

Sans l'artefact, il n'y a aucun moyen d'accéder au message réel.

Notez que cela n'est requis que lors de l'utilisation de la liaison d'artefacts HTTP. (Par opposition au HTTP plus courant POST Liaison qui envoie simplement le message SAML).

12
nzpcmad

il peut être considéré comme inintéressant de nos jours, mais le profil d'artefact est également utile si vous avez une faible bande passante entre l'agent utilisateur et les serveurs sp & idp et une meilleure bande passante entre sp & idp. L'affirmation (lourde) ne circule pas de l'IDP vers l'UA et de l'UA vers le SP et elle peut montrer de meilleures performances dans certaines circonstances.

1
François J.

Une autre raison d'utiliser la liaison HTTP Artifact est que vous pouvez utiliser SSL pour garantir l'intégrité et la confidentialité des messages SAML. Le demandeur et le répondeur SAML n'ont pas besoin de signer, valider, chiffrer et déchiffrer le message SAML.

1
fajarkoe