OpenID (OpenID Connect)

OpenID Connect é um protocolo de autenticação que permite que os usuários acessem aplicativos usando seu provedor OpenID, como o Google ou o Facebook.

OpenID Connect define quatro funções:

- O OpenID Provider (OP) é a entidade que fornece serviços de autenticação aos usuários.
- O Relying Party (RP) é a entidade que quer autenticar os utilizadores.
- O Usuário é a entidade que está sendo autenticada.
- O OpenID Connect Identity Provider (IDP) é a entidade que fornece informações de identidade para o RP.

O OP autentica o usuário e depois fornece ao RP um Token de identificação, que é um objeto JSON assinado que contém informações sobre a identidade do usuário. O RP pode então utilizar esse token de identificação para verificar a identidade do usuário.

OpenID Connect também define uma série de reivindicações padrão, que são pedaços de informação que podem ser incluídos no Token de ID. Estas reivindicações podem ser usadas pelo RP para verificar a identidade do usuário e para obter informações adicionais sobre o usuário. O que é OpenID Connect? O OpenID Connect (OIDC) é um protocolo de autenticação que é uma extensão do OAuth 2.0. O OIDC permite aos clientes verificar a identidade do usuário final com base na autenticação realizada por um servidor de autorização. Ele também permite que os clientes obtenham informações básicas sobre o perfil do usuário final de uma forma interoperável e semelhante ao REST.

OIDC é projetado para ser interoperável com o OAuth 2.0 e para trabalhar com clientes existentes OAuth 2.0. O OIDC não introduz nenhum conceito ou terminologia nova.

OIDC utiliza o mesmo fluxo de código de autorização que o OAuth 2.0, com a adição de um Token de identificação que é emitido para o cliente após uma troca de código de autorização bem sucedida. O ID Token contém reivindicações sobre o usuário final, tais como nome e endereço de e-mail.
O OpenID Connect permite aos clientes verificar a identidade do usuário final com base na autenticação realizada por um servidor de autorização. Ele também permite aos clientes obter informações básicas sobre o perfil do usuário final de uma maneira interoperável e semelhante ao REST.

O OpenID é o mesmo que o SAML? Não, OpenID e SAML não são a mesma coisa. OpenID é um protocolo de autenticação que permite aos usuários fazer login em sites e aplicativos usando sua conta existente em outro site ou aplicativo. O SAML é um protocolo baseado em XML que permite às empresas trocar dados de autenticação e autorização entre sistemas.

O OAuth é igual ao OpenID?

Não, OAuth e OpenID não são a mesma coisa. OAuth é um framework de autorização que permite que aplicações solicitem acesso limitado a contas de usuários em um serviço HTTP. O OpenID, por outro lado, é um protocolo de autenticação que permite aos usuários fazer login em sites e aplicativos usando seu provedor OpenID.

O OpenID é um SSO?

Não, o OpenID não é um SSO. Single sign-on (SSO) é um esquema de autenticação que permite ao usuário entrar com um único conjunto de credenciais (geralmente um nome de usuário e senha) em vários aplicativos díspares. OpenID, por outro lado, é um protocolo de autenticação que permite que os usuários se autentiquem em aplicativos com um identificador OpenID, que normalmente é um URL.

Como eu crio um OpenID Connect?

Existem inúmeras maneiras de criar um provedor OpenID Connect. Um método popular é usar o plugin OpenID Connect para o projeto Identity Server. Este plugin fornece uma implementação compatível com os padrões do OpenID Connect, e pode ser facilmente integrado à sua infraestrutura de autenticação existente.

Outro método popular é usar o projeto Keycloak. O Keycloak é uma solução de gerenciamento de acesso e identidade de código aberto, e inclui suporte integrado ao OpenID Connect.

Depois de ter seleccionado um método para criar o seu fornecedor OpenID Connect, terá de o configurar com o seu fornecedor de identidade (IdP) à sua escolha. Muitos IdPs populares, como o Google e o Facebook, suportam OpenID Connect. Você precisará criar um aplicativo dentro do seu IdP, e configurá-lo com o redirecionamento apropriado do URI e outros detalhes. Uma vez feito isso, você será capaz de usar seu IdP para autenticar usuários para o seu provedor OpenID Connect.