"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > SAML x OAuth x OpenID Connect

SAML x OAuth x OpenID Connect

Publicado em 2024-11-06
Navegar:537

Este post foi publicado inicialmente no meu blog. Confira a fonte original usando o link abaixo:

SAML vs. OAuth vs. OpenID Connect

SAML x OAuth x OpenID Connect

Este artigo explorará SAML, OAuth e OpenID Connect, seus casos de uso e como eles interagem entre si

SAML vs. OAuth vs. OpenID Connect rahulvijayvergiya.hashnode.dev

Autenticação e Autorização são cruciais para garantir a segurança de aplicações e dados. Três protocolos amplamente utilizados para gerenciar esses processos são OAuth, SAML e OpenID.

Ao usar aplicativos como Facebook, Google ou LinkedIn para fazer login em outros sites, você encontra alguns protocolos importantes: OAuth, SAML e OpenID Connect . Esses protocolos ajudam a manter suas informações seguras, permitindo que você acesse diversos serviços.

1. SAML (linguagem de marcação de declaração de segurança)

SAML é um padrão aberto para troca de dados de autenticação e autorização entre partes, especialmente entre um provedor de identidade (IdP) e um provedor de serviços (SP). Ele é usado principalmente para cenários de logon único (SSO), permitindo que os usuários se autentiquem uma vez e obtenham acesso a vários aplicativos.

Como funciona o SAML

Funções/Atores:

  • Usuário: O indivíduo que acessa os aplicativos.

  • Provedor de identidade (IdP): O serviço que autentica o usuário e fornece as declarações de identidade.

  • Provedor de serviços (SP): O aplicativo ou serviço que o usuário está tentando acessar.

Diagrama de fluxo de solicitação:

SAML vs. OAuth vs. OpenID Connect

Principais recursos do SAML

  • Logon único (SSO): Os usuários autenticam uma vez para vários serviços.

  • Baseado em XML: usa XML para mensagens, tornando-o robusto.

  • Asserções seguras: Transmite a identidade e os atributos do usuário com segurança.


2. OAuth (autorização aberta)

OAuth é um padrão aberto para delegação de acesso comumente usado para autenticação e autorização baseadas em token. Ele permite que aplicativos de terceiros acessem os dados do usuário sem expor suas credenciais. OAuth é usado principalmente para autorização, permitindo que os usuários concedam acesso limitado aos seus recursos hospedados em um site para outro site.

Como funciona o OAuth

Funções/Atores:

  • Proprietário do recurso: O usuário que possui os dados e concede acesso a eles.

  • Servidor de recursos: O servidor que hospeda os dados do usuário (por exemplo, Google, Facebook).

  • Cliente: o aplicativo de terceiros que solicita acesso aos dados do usuário.

  • Servidor de autorização: O servidor responsável por emitir tokens de acesso ao cliente após autenticar o proprietário do recurso.

Diagrama de fluxo de solicitação:

SAML vs. OAuth vs. OpenID Connect

Principais recursos do OAuth

  • Acesso delegado: os usuários podem conceder acesso sem compartilhar credenciais.

  • Tokens de acesso: Tokens de curta duração que limitam a duração do acesso.

  • Escopos: Defina a extensão do acesso concedido ao cliente.


3. Conexão OpenID

OpenID Connect é uma camada de autenticação construída sobre o OAuth 2.0. Ele adiciona verificação de identidade e fornece uma maneira para os clientes verificarem a identidade do usuário com base na autenticação realizada por um Servidor de Autorização.

Como funciona o OpenID Connect

Funções/Atores:

  • Usuário final: O usuário que deseja autenticar.

  • Cliente: O aplicativo que solicita autenticação do usuário.

  • Servidor de autorização: O servidor que autentica o usuário e emite tokens.

Diagrama de fluxo de solicitação:

SAML vs. OAuth vs. OpenID Connect

Principais recursos do OpenID Connect

  • Tokens de ID: JWTs que fornecem informações e declarações do usuário.

  • Integração perfeita com OAuth: Combina autenticação e autorização.

  • Endpoint de informações do usuário: Permite buscar informações adicionais do usuário.

OpenID Connect e OAuth

Parecem semelhantes, mas ambos servem a propósitos diferentes, mas complementares:

  • OAuth: usado para autorização. Ele permite que aplicativos acessem recursos (como seu perfil ou fotos) de outro serviço (por exemplo, Facebook ou Google) sem precisar de sua senha. Use OAuth quando quiser conceder acesso limitado aos seus dados (por exemplo, um aplicativo de terceiros acessando sua agenda).

  • OpenID Connect (OIDC): construído sobre o OAuth, é usado para autenticação. Ele verifica sua identidade e permite que os aplicativos saibam quem você é. Use o OpenID Connect quando precisar fazer login em um site ou aplicativo usando um serviço como o Google, provando quem você é.

Quando usar:

  • Usar OAuth:

    • Quando você deseja que um aplicativo acesse dados ou recursos em seu nome (por exemplo, um aplicativo postando no Twitter para você).
    • "Este aplicativo pode acessar meus dados?" (Autorização)
  • Usar OpenID Connect:

    • Quando você precisa verificar a identidade de um usuário (por exemplo, fazer login em um site usando sua conta do Google).
    • "Quem é este usuário?" (Autenticação)

Comparação rápida de OAuth, SAML e OpenID Connect

Recurso OAuth SAML Conexão OpenID
Propósito Autorização Autenticação Autenticação e Autorização
Formatar JSON, token XML JSON
Casos de uso Acesso API, aplicativos móveis Aplicativos da Web, SSO Aplicativos web e móveis
Complexidade Moderado Alto Moderado
Experiência do usuário Redireciona para o IdP Redireciona para o IdP Redireciona para o servidor de autorização

Conclusão

Compreender OAuth, SAML e OpenID Connect é essencial para criar aplicativos seguros que lidam com autenticação e autorização de usuários de maneira eficaz. Cada protocolo tem sua finalidade, garantindo que você possa acessar o que precisa enquanto mantém seus dados seguros.

Referências

  1. OAuth 2.0 explicado de forma simples

  2. O que é SAML?

  3. Visão geral do OpenID Connect

  4. Compreendendo as diferenças: OAuth, SAML e OpenID Connect

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/rahulvijayvergiya/saml-vs-oauth-vs-openid-connect-29m4?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3