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.