OpenID Connect (OIDC)
O OpenID Connect (OIDC) é um protocolo de identidade moderno construído sobre o framework OAuth 2.0, projetado para autenticar e autorizar usuários de forma segura em aplicativos web e móveis, o OIDC fornece uma camada adicional de segurança e simplicidade ao fluxo de autenticação.
O Authcube é uma plataforma certificada pela OpenID, garantindo conformidade e aderência aos padrões, RFCs e protocolos de autenticação e autorização. O Authcube Connect fornece os fluxos OIDC, que podem ser consumidos através de API Rest ou mesmo do SDK da própria OpenID.
Como filosofia, o Authcube é orientado aos padrões security by design para utilização dos fluxos de autenticação e autorização disponibilizado pelo Authcube Connect, viabilizando portanto a utilização dos SDKs disponibilizado pela própria OpenID Foundation o AppAuth (IOS, Android e JS).
getCodeVerifier() e getCodeChallenge()
O OpenID Connect (OIDC) é um protocolo de autenticação baseado em OAuth 2.0, projetado para autenticação de identidade. Ele permite que um aplicativo obtenha informações de identidade de um provedor de identidade sobre um usuário autenticado. Durante esse processo, é essencial proteger contra ataques de repetição (replay attacks), onde um invasor intercepta e reutiliza tokens de autenticação.
Para mitigar esse risco, o protocolo OIDC utiliza o PKCE (Proof Key for Code Exchange). O PKCE é um método de segurança projetado especificamente para proteger contra ataques de repetição em aplicativos que utilizam o fluxo de autorização do OAuth 2.0, como o fluxo de autorização implícito e o fluxo de autorização de código de autorização.
O funcionamento básico do PKCE consiste em:
- Solicitação de Autorização Inicial: Quando um aplicativo inicia o processo de autenticação, ele gera um código de verificação (verifier) aleatório e mantém uma cópia segura deste código. Este código é utilizado apenas uma vez e não é
- Solicitação de Autorização: O aplicativo envia uma solicitação de autorização para o provedor de identidade, incluindo o código de verificação (verifier) público (SHA-256) derivado do código original, e um código desafiador (challenge) no formato Base64 URL-safe.
- Retorno do Código de Autorização: O provedor de identidade autentica o usuário e retorna um código de autorização para o aplicativo.
- Troca de Código por Token de Acesso: O aplicativo envia o código de autorização juntamente com o código original de verificação (verifier) secreto para o provedor de identidade. O provedor de identidade verifica se o código de verificação (verifier) corresponde ao código desafiador (challenge) enviado anteriormente. Se a correspondência for bem-sucedida, o provedor de identidade emite um token de acesso.
Ao utilizar o PKCE, mesmo que um invasor intercepte o código de autorização, ele não será capaz de obter um token de acesso válido sem o código de verificação (verifier) original, que é mantido em segredo pelo aplicativo. Isso reduz significativamente o risco de ataques de repetição, proporcionando uma camada adicional de segurança ao protocolo OIDC.
O getCodeVerifier
e getCodeChallenge
são funções para ajudar na utilização do
PKCE para proteção contra replay attacks.