Blog

Comment gérer l'authentification et OAuth dans Xano

Maxime Topolov
Maxime Topolov
10 juin 2024
-
 
Comment gérer l'authentification et OAuth dans Xano

Xano offre plusieurs options pour intégrer l'authentification et les fournisseurs OAuth dans votre application. Cet article présente les meilleures pratiques et les détails techniques de l'intégration de Google OAuth, Azure AD SSO et Facebook OAuth avec Xano.

Intégration de Google OAuth

Pour intégrer Google OAuth à Xano :

1. Configurez vos informations d'identification Google OAuth dans la Google Cloud Console, en spécifiant les URI de redirection appropriés. Pour les applications mobiles, aucun URI de redirection ou secret client n'est nécessaire. (https://community.xano.com/ask-the-community/post/google-oauth-for-ios-v4eoDcQjII1O2i8)

2. Installez l'extension Google OAuth dans votre espace de travail Xano. Effectuez toutes les étapes d'installation prévues dans les instructions d'extension.

3. Lors de la demande d'autorisation à Google, utilisez l'identifiant du client web pour toutes les plateformes, y compris les mobiles. (https://community.xano.com/ask-the-community/post/google-oauth-for-ios-v4eoDcQjII1O2i8)

4. Après avoir obtenu le code d'autorisation de Google, le point de terminaison /oauth/google/continue dans Xano peut échouer à créer le lien magique en raison de l'encodage du code. Appliquez un filtre pour décoder le paramètre de code avant de l'utiliser. (https://community.xano.com/ask-the-community/post/my-google-oauth-plugin-doenst-seem-to-work-eOfwQCQ3rmTouEj)

5. Assurez-vous que les variables d'environnement magic_link_redirect_uri et magic_jwt_secret sont correctement définies dans les paramètres de votre espace de travail Xano pour que le lien magique soit généré avec succès. (https://community.xano.com/ask-the-community/post/my-google-oauth-plugin-doenst-seem-to-work-eOfwQCQ3rmTouEj)

Intégration SSO Azure AD

Pour intégrer Azure AD SSO aux API Xano :

1. Utilisez le processus de connexion à l'API Microsoft Graph pour obtenir un jeton d'identification à partir d'Azure AD.

2. Créez un point de terminaison dans Xano qui valide le jeton d'identification et l'échange contre un jeton d'accès Xano. Cela vous permet de tirer parti de l'authentification intégrée de Xano sans faiblesses dans la chaîne d'authentification. (https://community.xano.com/ask-the-community/post/azure-ad-sso-with-xano-apis-NBJUwSlnFdPdzvN)

3. Pour valider le jeton d'identification dans Xano :
a. Décodez le jeton à l'aide de la fonction jwt_decode, qui vérifie la signature à l'aide de la clé secrète fournie.
b. Vérifiez les revendications du jeton, telles que l'émetteur, l'audience, l'heure d'expiration, pas avant l'heure et émis à l'heure.
c. Si le jeton est valide, associez l'utilisateur du jeton à un utilisateur de votre application sur la base de l'objet de la demande. (https://community.xano.com/ask-the-community/post/azure-ad-sso-with-xano-apis-NBJUwSlnFdPdzvN)

Intégration de Facebook OAuth

Pour configurer Facebook OAuth avec Xano :

1. Configurez vos identifiants Facebook OAuth dans la console Facebook Developer.

2. Installez l'extension Facebook OAuth Marketplace dans votre espace de travail Xano.

3. Lorsque vous utilisez le point de terminaison /oauth/facebook/init avec un front-end comme WeWeb, assurez-vous que le point de terminaison navigue vers l'auth_url générée. Si la navigation ne se fait pas automatiquement, vous devrez peut-être la déclencher manuellement dans votre code front-end. (https://community.xano.com/ask-the-community/post/my-google-oauth-plugin-doenst-seem-to-work-eOfwQCQ3rmTouEj)

Considérations générales sur OAuth

Pour connecter plusieurs comptes sociaux à un utilisateur, installez des instances distinctes de l'extension OAuth pour chaque fournisseur, en configurant des identifiants et des secrets différents pour chaque instance. (https://community.xano.com/ask-the-community/post/is-there-a-way-to-install-the-same-extension-more-than-once-auth0-7HSOiICcBvEnAVK)

- Lors du stockage des jetons d'accès, il convient de tenir compte de leur expiration et de mettre en œuvre des mécanismes de rafraîchissement des jetons si nécessaire. Limiter la durée de vie des jetons d'accès afin d'atténuer les risques liés à la compromission des jetons. (https://community.xano.com/ask-the-community/post/invalid-a-access-token-sVN0KbcORQrF6dW)

Fonctionnement d'OAuth

OAuth (Open Authorization) est une norme ouverte de délégation d'accès, couramment utilisée comme moyen pour les internautes d'accorder à des sites web ou à des applications l'accès à leurs informations sur d'autres sites web sans leur donner les mots de passe. Le processus OAuth comprend généralement les étapes suivantes :

1. Enregistrement de l'application : l'application qui souhaite accéder aux ressources de l'utilisateur s'enregistre auprès du fournisseur OAuth (par exemple, Google, Facebook, Azure AD). Le fournisseur délivre à l'application des informations d'identification du client, telles que l'identifiant et le secret du client.

2. Demande d'autorisation : Lorsqu'un utilisateur souhaite accorder à l'application l'accès à ses ressources, l'application dirige l'utilisateur vers le serveur d'autorisation du fournisseur OAuth. La demande d'autorisation comprend l'identifiant du client, l'étendue demandée (permissions) et un URI de redirection.

3. Authentification et consentement de l'utilisateur : L'utilisateur s'authentifie auprès du fournisseur OAuth et se voit présenter un écran de consentement décrivant les autorisations demandées par l'application. Si l'utilisateur donne son accord, le fournisseur OAuth le redirige vers l'URI de redirection de l'application avec un code d'autorisation.

4. Échange de jetons : L'application envoie une demande au point de terminaison du jeton du fournisseur OAuth, y compris le code d'autorisation, l'ID du client, le secret du client et l'URI de redirection. Si le code est valide, le fournisseur renvoie un jeton d'accès (et éventuellement un jeton de rafraîchissement) à l'application.

5. Accès aux ressources : L'application utilise le jeton d'accès pour effectuer des demandes auprès de l'API du fournisseur OAuth au nom de l'utilisateur. L'API valide le jeton d'accès et, s'il est valide, renvoie les ressources demandées.

6. Rafraîchissement du jeton : Si un jeton de rafraîchissement a été émis, l'application peut l'utiliser pour obtenir un nouveau jeton d'accès lorsque le jeton actuel expire, sans que l'utilisateur ne doive s'authentifier à nouveau.

SSO et OAuth sont-ils identiques ?

Non ! SSO (Single Sign-On) et OAuth (Open Authorization) sont des concepts liés mais distincts.

Le SSO est un mécanisme qui permet aux utilisateurs de s'authentifier une fois et d'accéder à plusieurs applications sans avoir à se connecter séparément pour chacune d'entre elles.

OAuth, quant à lui, est un cadre d'autorisation qui permet aux utilisateurs d'accorder à des applications tierces un accès limité à leurs ressources sans partager leurs informations d'identification.

Quelle est la différence entre oauth2 et oauth ?

OAuth (OAuth 1.0) et OAuth 2.0 sont des normes ouvertes pour l'autorisation, qui diffèrent en termes de complexité, de flexibilité et de sécurité. OAuth 1.0 est un protocole strict et complexe qui exige la signature cryptographique de chaque demande, en mettant l'accent sur une sécurité élevée grâce à des jetons signés (HMAC-SHA1 ou RSA-SHA1). En revanche, OAuth 2.0 simplifie le processus en utilisant des jetons de porteur sans avoir besoin de signer la demande, en s'appuyant sur des protocoles de transport sécurisés tels que HTTPS. OAuth 2.0 introduit plusieurs types d'octroi (par exemple, code d'autorisation, implicite) pour répondre à différents cas d'utilisation et prend en charge les jetons de rafraîchissement, ce qui améliore l'expérience de l'utilisateur. Alors qu'OAuth 1.0 est moins adopté en raison de sa complexité, la flexibilité et la facilité d'utilisation d'OAuth 2.0 en ont fait la norme pour les autorisations modernes, bien que sa sécurité dépende fortement d'une mise en œuvre correcte de HTTPS.

Quelle est la différence entre openid et oauth2 ?

OpenID et OAuth2 ont des objectifs différents en matière de gestion des identités et des accès. OpenID est principalement destiné à l'authentification, permettant aux utilisateurs de se connecter à plusieurs sites à l'aide d'un seul ensemble d'informations d'identification, en se concentrant sur la vérification de l'identité de l'utilisateur pour les systèmes d'authentification unique (SSO). En revanche, OAuth2 est conçu pour l'autorisation, permettant aux applications tierces d'accéder aux ressources d'un utilisateur sans exposer ses informations d'identification, en accordant un accès limité par le biais de jetons d'autorisation. OpenID utilise des jetons d'identification pour la vérification de l'identité, tandis qu'OAuth2 utilise des jetons d'accès et de rafraîchissement pour l'accès aux ressources. OpenID implique un flux d'authentification simple, tandis qu'OAuth2 prend en charge plusieurs flux pour différents scénarios. OpenID améliore le confort des utilisateurs sur plusieurs sites, tandis qu'OAuth2 fournit un accès sécurisé et flexible aux ressources pour les applications tierces.

Partager cet article
 
Backend
Applications professionnelles
Low-code
Ingénierie logicielle
Maxime Topolov
Maxime Topolov
PDG

Vous pouvez également lire

API
Performances
Contenu
SEO
Données
Application pour les consommateurs
Ingénierie logicielle
Sur site
Développement mobile
ERP
E-commerce
Recrutement
Cloud
Migration de contenu
IA
Frontend
CMS
Headless
Backend
Low-code
Applications professionnelles
L'IA conversationnelle
Éducation
Médias et édition
Santé
Services financiers
Grandes entreprises
Start-Up