IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Choix de la methode d'authentification pour une API REST mono-utilisateur


Sujet :

Sécurité

  1. #1
    Membre confirmé Avatar de Max Lothaire
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 155
    Points : 578
    Points
    578
    Par défaut Choix de la methode d'authentification pour une API REST mono-utilisateur
    Bonjour,

    je suis entrain de construire un blog en deux parties : une partie public qui a accès aux pages html (www.monsite.fr), et une API REST accessible sur un autre domaine(admin.monsite.fr) qui permet d'éditer le contenu.
    Les deux parties du blog sont deux applications différentes, chacune dans leur conteneur, et la première n'aura accès à la BDD qu'en lecture seule.

    Le reverse proxie serait configuré pour demander un certificat TLS aux clients qui se connecteraient à admin.monsite.fr. ( première couche de d'authentification).
    La validation du certificat n'est requis que pour permettre au reverse proxie de savoir si oui ou non il passe la requête à l'application.

    À partir de là, que devrais-je faire pour m'authentifier au niveau de l'application ?

    Je peux :

    1. Configurer le serveur de sorte qu'il ajoute une entête avec les informations authentification
    2. Passer le login et le mot de passe dans l'entête à chaque requête
    3. Utiliser un jetons avec une date de péremption
    4. Utiliser un JSON Web Token


    Quel serait le choix le plus pertinent selon vous ?

  2. #2
    Membre confirmé Avatar de Max Lothaire
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 155
    Points : 578
    Points
    578
    Par défaut
    J'ai résolu mon problème tout seul:

    1. Je vais préférer configurer le reverse proxy le plus simplement possible. Le certificat client devenant seulement l'un des mécanismes identifiants les machines qui établissent la connexion (en plus d'un éventuel VPN et des règles de pare-feu)
    2. Envoyer les identifiants à chaque requête peut-être ou fastidieux (on le client les demandant tout le temps à l'utilisateur) ou risqué (on stocke un mot de passe en claire dans la mémoire plus longtemps que nécessaire)
    3. Le Token avec date d'expiration nécessite qu'il soit stocké sur le serveur. Ce qui constitue un état, ce qu'une API RESTful ne devrait pas avoir.


    Il ne reste que le JSON Web Token
    Je vais donc m'orienter vers cette solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [4.1] Authentification Basic pour une api Rest
    Par decad7 dans le forum Symfony
    Réponses: 1
    Dernier message: 14/09/2018, 16h41
  2. Quelle structure (endpoints) pour une API REST
    Par vallica dans le forum Langages serveur
    Réponses: 12
    Dernier message: 05/12/2017, 17h47
  3. Quel langage pour une API REST web "haute performance" ?
    Par onepix dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 10/06/2017, 18h22
  4. Format d'un JSON pour une API REST
    Par pierapi dans le forum Langage
    Réponses: 2
    Dernier message: 17/09/2015, 15h15
  5. Quelle langage pour une application locale mono utilisateur
    Par alaplante dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 16/02/2015, 22h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo