Security Assertion Markup Language (SAML)


  • federated network or cloud needs specific protocols and technologies to:
    • implement user identity assertions
    • and transmit claims between the principal, the relying party, and the identity provider
  • SAML is one protocol

Security Assertion Markup Language (SAML) is an XML-based data format used to exchange authentication information between a client and a service.

  • SAML assertions (claims) are written in eXtensible Markup Language (XML)
  • Communications are established using HTTP/HTTPS and the Simple Object Access Protocol (SOAP)
    • XML-based web services protocol that is used to exchange messages
  • the secure tokens are signed using the XML signature specification
  • use of a digital signature allows the relying party to trust the identity provider

Info

  • Most other federated identity frameworks use the service provider terminology
    • e.g., OAuth
  • In SAML, the service provider is referred to as a relying party (RP).

Example

example of a SAML implementation is Amazon Web Services (AWS).

  • functions as a SAML relying party
    • allows companies using AWS to
      • develop cloud applications to manage their customers’ user identities
      • and provide them with permissions on AWS without having to create accounts for them on AWS directly

SAML Authentication

  • 3 actors in a SAML request
    • Principal
      • end-user wanting to use a server
    • Identity provider
      • organization providing proof of identity
    • Service provider
      • web-based server that the end-user wants to access