A Security Assertion Markup Language (SAML) é um padrão de federação aberta?
Sim, a Security Assertion Markup Language (SAML) é um padrão de federação aberta amplamente utilizado para autenticação única (Single Sign-On – SSO) e troca segura de informações de autenticação entre partes que participam de uma transação de autenticação.
O termo “federação aberta” refere-se à capacidade do SAML de permitir a autenticação e autorização entre diferentes domínios de segurança, sem exigir uma relação de confiança direta entre eles. Isso significa que um usuário autenticado em um sistema de identidade pode acessar recursos em outro sistema de serviço sem precisar autenticar-se novamente, desde que ambos os sistemas participem da mesma federação SAML.
Portanto, sim, o SAML é considerado um padrão de federação aberta devido à sua capacidade de suportar interações seguras entre diferentes sistemas de identidade e serviço em uma ampla variedade de contextos e ambientes.
Qual a diferença entre o SAML e o OAuth?
SAML (Security Assertion Markup Language) e OAuth (Open Authorization) são dois protocolos diferentes que servem para propósitos distintos, embora ambos estejam relacionados à autenticação e autorização em sistemas de computador. Aqui está uma visão geral das diferenças entre eles:
- Propósito Principal:
- SAML: É principalmente usado para autenticação única (Single Sign-On – SSO) federada. Ele permite que um usuário autenticado em um sistema possa acessar serviços em outros sistemas sem a necessidade de fornecer credenciais novamente.
- OAuth: É um protocolo de autorização que permite que aplicativos obtenham acesso limitado a contas em outro serviço em nome dos usuários. Geralmente é usado para delegar permissões de acesso a recursos protegidos (como dados ou serviços) sem revelar as credenciais do usuário.
- Tecnologia Subjacente:
- SAML: Baseia-se em XML para troca de mensagens e é frequentemente implementado sobre o protocolo HTTP.
- OAuth: Usa tokens para conceder acesso a recursos protegidos e geralmente é implementado sobre HTTP, embora não esteja restrito a esse protocolo.
- Fluxo de Trabalho:
- SAML: Envolve uma troca de mensagens entre o provedor de identidade (IdP) e o provedor de serviço (SP), onde o IdP autentica o usuário e emite um token SAML que é enviado ao SP para permitir o acesso.
- OAuth: Geralmente envolve um fluxo de autorização, onde um aplicativo solicita autorização para acessar recursos em nome do usuário. Isso geralmente inclui redirecionar o usuário para um servidor de autorização, onde o usuário concede permissões, e o aplicativo recebe um token de acesso para acessar os recursos.
- Uso de Tokens:
- SAML: Utiliza tokens SAML (Security Assertion Markup Language) para representar informações de autenticação e autorização.
- OAuth: Usa tokens de acesso para autorização, bem como tokens de atualização e tokens de identificação, dependendo do fluxo OAuth específico.
- Escopo de Aplicação:
- SAML: Mais comumente usado em cenários corporativos e empresariais, especialmente para autenticação em ambientes distribuídos.
- OAuth: Amplamente adotado na web moderna, especialmente em aplicativos e serviços online que exigem acesso a recursos protegidos de terceiros.
Exemplos reais de uso, como nome de marcas etc de SAML e OAuth
Exemplos de uso de SAML:
- Salesforce: A plataforma Salesforce utiliza o SAML para autenticação única (SSO) em seus serviços. Isso permite que os usuários façam login uma vez em sua conta Salesforce e acessem outros aplicativos integrados sem a necessidade de fornecer credenciais novamente.
- Google Workspace (anteriormente G Suite): O Google Workspace suporta SAML para permitir que organizações integrem sua infraestrutura de identidade com os serviços do Google. Isso possibilita o SSO para aplicativos como Gmail, Google Drive e Google Calendar.
- Microsoft Azure Active Directory (Azure AD): Azure AD é a solução de gerenciamento de identidade e acesso da Microsoft na nuvem. Ele suporta SAML para permitir que os usuários façam login em aplicativos SaaS (Software as a Service) usando suas credenciais do Azure AD.
Exemplos de uso de OAuth:
- Facebook Login: Muitos aplicativos e sites permitem que os usuários se autentiquem usando o Facebook como provedor de identidade. Isso é possível graças ao OAuth, onde o aplicativo obtém permissão do usuário para acessar suas informações do Facebook em seu nome.
- GitHub: A API do GitHub utiliza o OAuth para autenticação e autorização de aplicativos de terceiros. Isso permite que os desenvolvedores criem aplicativos que interajam com os repositórios e dados do GitHub em nome dos usuários.
- Uber: O serviço de compartilhamento de viagens Uber utiliza OAuth para permitir que aplicativos de terceiros acessem sua API e ofereçam funcionalidades como solicitação de viagens, estimativas de preços, etc., em nome dos usuários.