Blog

Como lidar com a autenticação e o OAuth na Xano

Maxime Topolov
Maxime Topolov
10 de junho de 2024
 
Como lidar com a autenticação e o OAuth na Xano

A Xano oferece várias opções para integrar provedores de autenticação e OAuth em seu aplicativo. Este artigo abordará as práticas recomendadas e os detalhes técnicos para integrar o Google OAuth, o Azure AD SSO e o Facebook OAuth ao Xano.

Integração com o Google OAuth

Para integrar o Google OAuth ao Xano:

1. Configure suas credenciais do Google OAuth no Console do Google Cloud, especificando os URIs de redirecionamento apropriados. Para aplicativos móveis, não são necessários URIs de redirecionamento ou senhas de cliente.(https://community.xano.com/ask-the-community/post/google-oauth-for-ios-v4eoDcQjII1O2i8)

2. Instale a extensão Google OAuth em seu espaço de trabalho Xano. Conclua todas as etapas de configuração fornecidas nas instruções da extensão.

3. Ao fazer a solicitação de autorização ao Google, use o ID do cliente da Web para todas as plataformas, inclusive a móvel.(https://community.xano.com/ask-the-community/post/google-oauth-for-ios-v4eoDcQjII1O2i8)

4. Depois de obter o código de autorização do Google, o ponto de extremidade /oauth/google/continue no Xano pode não conseguir criar o link mágico devido à codificação do código. Aplique um filtro para decodificar o parâmetro de código antes de usá-lo.(https://community.xano.com/ask-the-community/post/my-google-oauth-plugin-doenst-seem-to-work-eOfwQCQ3rmTouEj)

5. Certifique-se de que as variáveis de ambiente magic_link_redirect_uri e magic_jwt_secret estejam definidas corretamente nas configurações do espaço de trabalho do Xano para que o link mágico seja gerado com êxito.(https://community.xano.com/ask-the-community/post/my-google-oauth-plugin-doenst-seem-to-work-eOfwQCQ3rmTouEj)

Integração SSO do Azure AD

Para integrar o SSO do Azure AD com as APIs Xano:

1. Use o processo de login da API do Microsoft Graph para obter um token de ID do Azure AD.

2. Crie um endpoint na Xano que valide o token de ID e o troque por um token de acesso da Xano. Isso permite que você aproveite a autenticação integrada do Xano sem pontos fracos na cadeia de autenticação.(https://community.xano.com/ask-the-community/post/azure-ad-sso-with-xano-apis-NBJUwSlnFdPdzvN)

3. Para validar o token de ID na Xano:
a. Decodifique o token usando a função jwt_decode, que verifica a assinatura usando a chave secreta fornecida.
b. Verifique as declarações do token, como emissor, público-alvo, tempo de expiração, não antes do tempo e emitido no tempo.
c. Se o token for válido, associe o usuário no token a um usuário em seu aplicativo com base na declaração do assunto.(https://community.xano.com/ask-the-community/post/azure-ad-sso-with-xano-apis-NBJUwSlnFdPdzvN)

Integração com o Facebook OAuth

Para configurar o Facebook OAuth com o Xano:

1. Configure suas credenciais do Facebook OAuth no Console do desenvolvedor do Facebook.

2. Instale a extensão do Facebook OAuth Marketplace em seu espaço de trabalho Xano.

3. Ao usar o ponto de extremidade /oauth/facebook/init com um front-end como o WeWeb, certifique-se de que o ponto de extremidade navegue até o auth_url gerado. Se a navegação não ocorrer automaticamente, talvez seja necessário acionar manualmente a navegação em seu código de front-end.(https://community.xano.com/ask-the-community/post/facebook-oauth-marketplace-extension-not-navigating-to-auth-url-jsxQZvXUSRMAOum)

Considerações gerais sobre o OAuth

Para conectar várias contas sociais a um usuário, instale instâncias separadas da extensão OAuth para cada provedor, configurando diferentes IDs de cliente e senhas para cada instância.(https://community.xano.com/ask-the-community/post/is-there-a-way-to-install-the-same-extension-more-than-once-auth0-7HSOiICcBvEnAVK)

- Ao armazenar tokens de acesso, considere a expiração do token e implemente mecanismos de atualização de token conforme necessário. Limite a vida útil dos tokens de acesso para reduzir os riscos associados a tokens comprometidos.(https://community.xano.com/ask-the-community/post/invalid-a-access-token-sVN0KbcORQrF6dW)

Como funciona o OAuth

O OAuth (Open Authorization, autorização aberta) é um padrão aberto para delegação de acesso, geralmente usado como uma forma de os usuários da Internet concederem a sites ou aplicativos acesso às suas informações em outros sites sem fornecer as senhas. O processo do OAuth normalmente envolve as seguintes etapas:

1. Registro do aplicativo: O aplicativo que deseja acessar os recursos do usuário se registra no provedor OAuth (por exemplo, Google, Facebook, Azure AD). O provedor emite credenciais de cliente, como ID e senha do cliente, para o aplicativo.

2. Solicitação de autorização: Quando um usuário deseja conceder ao aplicativo acesso aos seus recursos, o aplicativo direciona o usuário para o servidor de autorização do provedor OAuth. A solicitação de autorização inclui o ID do cliente, o escopo solicitado (permissões) e um URI de redirecionamento.

3. Autenticação e consentimento do usuário: O usuário se autentica com o provedor OAuth e é apresentada uma tela de consentimento que descreve as permissões que o aplicativo está solicitando. Se o usuário conceder o consentimento, o provedor OAuth redirecionará o usuário para o URI de redirecionamento do aplicativo com um código de autorização.

4. Troca de token: O aplicativo envia uma solicitação ao endpoint de token do provedor OAuth, incluindo o código de autorização, o ID do cliente, a senha do cliente e o URI de redirecionamento. Se o código for válido, o provedor retornará um token de acesso (e, opcionalmente, um token de atualização) para o aplicativo.

5. Acesso a recursos: O aplicativo usa o token de acesso para fazer solicitações à API do provedor OAuth em nome do usuário. A API valida o token de acesso e, se for válido, retorna os recursos solicitados.

6. Atualização de token: Se um token de atualização tiver sido emitido, o aplicativo poderá usá-lo para obter um novo token de acesso quando o atual expirar, sem exigir que o usuário se autentique novamente.

SSO e OAuth são a mesma coisa?

Não! SSO (Single Sign-On) e OAuth (Open Authorization) são conceitos relacionados, mas distintos.

O SSO é um mecanismo que permite que os usuários se autentiquem uma vez e obtenham acesso a vários aplicativos sem a necessidade de fazer login separadamente para cada um deles.

O OAuth, por outro lado, é uma estrutura de autorização que permite que os usuários concedam a aplicativos de terceiros acesso limitado a seus recursos sem compartilhar suas credenciais.

Qual é a diferença entre oauth2 e oauth?

O OAuth (OAuth 1.0) e o OAuth 2.0 são padrões abertos para autorização, que diferem em complexidade, flexibilidade e segurança. O OAuth 1.0 é um protocolo rigoroso e complexo que exige assinatura criptográfica de cada solicitação, concentrando-se na alta segurança por meio de tokens assinados (HMAC-SHA1 ou RSA-SHA1). Por outro lado, o OAuth 2.0 simplifica o processo usando tokens portadores sem a necessidade de assinatura de solicitação, contando com protocolos de transporte seguros como HTTPS. O OAuth 2.0 apresenta vários tipos de concessão (por exemplo, Código de autorização, Implícito) para atender a diferentes casos de uso e suporta tokens de atualização, melhorando a experiência do usuário. Embora o OAuth 1.0 seja menos adotado devido à sua complexidade, a flexibilidade e a facilidade de uso do OAuth 2.0 o tornaram o padrão para autorização moderna, embora sua segurança dependa muito da implementação adequada do HTTPS.

Qual é a diferença entre openid e oauth2?

O OpenID e o OAuth2 têm finalidades diferentes no gerenciamento de identidade e acesso. O OpenID serve principalmente para autenticação, permitindo que os usuários façam login em vários sites com um único conjunto de credenciais, concentrando-se na verificação da identidade do usuário para sistemas de login único (SSO). Em contrapartida, o OAuth2 foi projetado para autorização, permitindo que aplicativos de terceiros acessem os recursos de um usuário sem expor suas credenciais, concedendo acesso limitado por meio de tokens de autorização. O OpenID usa tokens de ID para verificação de identidade, enquanto o OAuth2 usa tokens de acesso e atualização para acesso a recursos. O OpenID envolve um fluxo de autenticação simples, enquanto o OAuth2 oferece suporte a vários fluxos para diversos cenários. O OpenID aumenta a conveniência do usuário em vários sites, enquanto o OAuth2 oferece acesso seguro e flexível a recursos para aplicativos de terceiros.

Compartilhe esta publicação
 
Backend
Aplicativos de negócios
Pouco código
Engenharia de software
Maxime Topolov
Maxime Topolov
CEO

Você também pode ler

API
Desempenho
Conteúdo
SEO
Dados
Aplicativo do consumidor
Engenharia de software
On-premises
Desenvolvimento móvel
ERP
Comércio eletrônico
Recrutamento
Nuvem
Migração de conteúdo
IA
Front-end
CMS
Sem cabeça
Backend
Pouco código
Aplicativos de negócios
IA de conversão
Educação
Mídia e publicação
Assistência médica
Serviços financeiros
Grandes empresas
Início