
Learn the main concepts around identity and access management, including single sign on, identity providers, RBAC, SAML, OAuth, authentication and authorization.
This guide discusses distinctions to make between SAML and OAuth, and is part of a series that will also discuss Single Sign On, Identity Access Management, and Access Control.
SAML (Security Assertion Markup Language) is an XML-based standard for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider. It is commonly used to provide single sign-on functionality, allowing users to authenticate to multiple applications with a single set of login credentials.
SAML works by the identity provider (IdP) authenticating the user and then providing an assertion to the service provider (SP) to prove the user's identity. The assertion is a document that contains information about the authenticated user and is digitally signed by the IdP. The SP can then use the information in the assertion to grant the user access to the protected resources.
SAML was initially developed by the OASIS Security Services Technical Committee in the early 2000s. It was developed by a group of vendors, researchers, and practitioners from different organizations and companies, such as IBM, Microsoft, and VeriSign among others.
The first version of the standard, SAML 1.0, was released in November 2002. The latest version, SAML 2.0, was released in March 2005 and is the most widely used version of the standard.
SAML is commonly used in enterprise environments to provide single sign-on functionality across different applications and systems. It is often used to authenticate users to web-based applications, cloud-based services, and other resources that are protected by a service provider.
OAuth (Open Authentication) is an open standard for authorization that allows users to share their private resources (e.g., photos, videos, contact lists) stored on one site with another site without having to share their credentials, typically a username and password. It enables users to authorize third-party applications to access their resources without sharing their passwords.
OAuth works by providing a way for a user to grant a third-party application access to their resources without sharing their credentials. The user is redirected to the service provider (e.g., Google, Facebook) to authenticate and authorize the application, and the service provider then provides the application with an access token. This token can be used by the application to access the user's resources on the service provider's site.
OAuth uses a token-based authentication system, where the user is issued a token that represents their authorization to access the protected resources. The token is sent with each request for a protected resource, and the service provider uses it to authenticate the user and authorize access.
OAuth 2.0 is the latest version of the standard, which provides more flexibility and security compared to the previous version (OAuth 1.0). OAuth 2.0 is widely adopted in RESTful APIs and it has become the most popular protocol for this use case.
OAuth is commonly used by service providers, such as social media sites, email providers, and other web-based services, to allow third-party applications to access their users' protected resources. This allows users to share their information and content with other applications without having to share their login credentials.
Developers of third-party applications, such as mobile apps, desktop applications, and web-based services, often use OAuth to authenticate and authorize their users to access the protected resources on a service provider's site. By using OAuth, developers can focus on building their application's functionality without having to worry about the complexities of user authentication and authorization.