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

Bibliothèques et frameworks PHP Discussion :

Sécuriser une API.. OAuth2 ? ou autre ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut Sécuriser une API.. OAuth2 ? ou autre ?
    Bonjour,

    Je suis en train de m’intéresser de près aux API, serveurs REST (PHP) et application clientes en Javascript.

    J'ai commencé a developper une API avec Silex, le micro framework, tout fonctionne très bien à ce niveau.. Par contre j'ai des soucis avec le coté sécurité.

    Je voudrais pouvoir faire une application Javascript uniquement qui communique avec cette API (visualisation des données, envoi de formulaires, etc..). Mais je ne peux pas autoriser n'importe qui à envoyer un POST ou un DELETE sur mon API, bien evidemment !

    Je suis en train de me pencher sur OAuth et sur la librairie :
    https://github.com/php-loep/oauth2-server

    Mais la, je suis un peu perdu ! J'ai intégré la librairie avec composer, créé une fonction "before" dans silex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $app->before(function() use($app) {
     
    	// Initiate the Request handler
    	$request = new OAuth2\Server\Util\Request();
    	// Initiate a new database connection
    	$db = new OAuth2\Server\Storage\PDO\Db('mysql://.......');
    	// Initiate the auth server with the models
    	$server = new OAuth2\Server\Resource(
    		new OAuth2\Server\Storage\PDO\Session($db)
    	);
     
    	//$grantType = new OAuth2\Server\Grant\ClientCredentials($server);
    	//$server->addGrantType($grantType);
     
    	$checkToken = checkToken($server);
    	if($checkToken !== true)
    	{
    		return new Response($app->json($checkToken));
    	}
    });

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function checkToken($server) {
            // Test for token existance and validity
            try {
                $server->isValid();
            }
            // The access token is missing or invalid...
            catch (OAuth2\Server\Exception\InvalidAccessTokenException $e)
            {
    			return $e->getMessage();
            }
    	return true;
    }
    J'ai créé un client dans la table "oauth_clients".. Mais comment faire un appel depuis l'appli javascript pour authentifier la requête ? En prime, je ne peux pas mettre de mot de passe / clef secrète dans le javascript, ca n'a rien de sécurisé..

    Bref, la je suis un peu paumé, et toutes les indications seraient les bienvenues !

    D'autant que je trouve énormément de tutorials sur les API et REST.. Mais jamais sur la partie sécurité de l'affaire.. Alors comment on fait ça ?

    Merci d'avance !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    hmm, plus j'y reflechis, plus ca me semble peu évident.
    Avec du PHP, pas de soucis, c'est facile de faire un client qui appelle l'API apres avoir requis un acces_token.. "client_credentials"

    Par contre avec du javascript, je ne comprends pas comment faire ce genre de choses..

    Oui, en fait j'aurais du poster ce thread dans javascript plutot que dans PHP

Discussions similaires

  1. [Débutant] Comment utiliser une API OVH (ou autre)
    Par alexabcinformatique dans le forum VB.NET
    Réponses: 4
    Dernier message: 20/02/2015, 12h12
  2. Sécurisation d'une API REST
    Par yeste64 dans le forum REST
    Réponses: 0
    Dernier message: 05/07/2014, 11h02
  3. Réponses: 0
    Dernier message: 13/01/2012, 16h44
  4. Réponses: 1
    Dernier message: 06/01/2010, 08h55
  5. JEG : jAPI : Une API pour C++Builder
    Par JEG dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/11/2003, 13h50

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