Authentification externe et API Rest

Bon moyen de faire

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour les zesteux.

Depuis quelques temps, je travaille en dilettante sur un petit projet, qui a la particularité d’être une application/site web. Moi, à la base, je bosse plutôt avec les bootloaders et autres bestioles bas niveau alors je dois avouer que j’ai pas mal de choses à apprendre. Du coup je viens à la pêche aux infos ici (:.

Dans mon idée, je souhaite faire un site web avec un peu de génération de pages côté serveurs, mais beaucoup de choses dynamiques via une API Rest. Je souhaite au passage que l’API Rest soit la plus user friendly possible dans le cas (improbable) où des gens se mettent un jour à utiliser mon projet et souhaite bidouiller leurs propres clients (ou que moi-même, pour le plaisir, je souhaite faire un petit client lourd).

Mon autre volonté, c’est de surtout ne pas m’embêter avec la gestion de comptes et surtout de mots de passe. Donc passer par des services externes type compte Google, par exemple.

Sauf que du coup je suis un peu perdu pour faire cohabiter ces deux exigences.

Voilà les idées que j’ai pu avoir jusqu’ici. Si vous pouviez me dire ce que vous en pensez, ça serait cool :3.

  1. L’authentification au serveur générant les pages se feraient via une session classique, avec le workflow classique (de ce que j’en ai compris) pour récupérer un token d’authentification de Google.
  2. Ce serveur serait lui-même un client de l’API, qui se connecterait en fournissant ce token d’authentification externe : le serveur de l’API peut normalement vérifier que ce token est valide. Une fois qu’il l’a fait, il peut générer son propre token a lui à transmettre au serveur de génération de page
  3. Afin que le client javascript puisse faire des requêtes Ajax, on lui transmet le token (pendant la génération de la page)

Si un client externe veut faire une authentification, il suit à peu près le même workflow : il récupère un token auprès de google qu’il transmet au serveur de l’API pour en récupérer un à utiliser avec elle.

Et voilà. Du coup, qu’en pensez-vous ? Ça vous paraît gérable ?

Merci d’avance pour vos réponses et bonne journée !

Édité par lethom

Cette réponse a aidé l'auteur du sujet

Bonjour,

Avec quel language/framework compte tu réalisé ton API ?

Alors oui, dans le principe tu as compris. L'utilisateur va sur le client la première fois et demande à s'authentifier. Ton client redirige avec des tokens l'utilisateur sur le site de google (ce token authentifiant ton application cliente) pour qu'il s'y authentifie et si il y est parvenu google redirige vers ton application avec des tokens d'authentification (que ton application cliente doit stocker).

Lorsque ton application cliente doit envoyé une requête à ton serveur elle envoie également ces tokens (pour schématisé) pour que sur ton api l'utilisateur puisse être identifier. La première fois ton API va contacter google pour savoir si ces jetons sont valable et si ils le sont tu pourra récupérer des informations de ton utilisateur tel son mail ou son nom par exemple.

A partir de là tu pourra ouvrir une session classique.

Pour plus d'information tu peux faire une recherche sur OAuth 2.

J'ai vite fais regarder, ce site explique mieux que moi en tout cas ^^ http://www.bubblecode.net/fr/2016/01/22/comprendre-oauth2/

Édité par La source

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte