Comment utiliser le module Authentification de base des services ?
Je veux ajouter l'authentification de base http pour mon service. Je l'ai installé et activé sur ma configuration de point final. J'ai obtenu cette "authentification HTTP de base Services_basic_auth n'a aucun paramètre disponible" dans ma configuration de point final. où est la page de configuration?
Le module authentifie un appel de service Web par rapport aux comptes drupal.
Notez qu'avec l'authentification de base, les informations d'identification peuvent être interceptées si SSL n'est pas utilisé.
Le module utilise le standard en-têtes d'authentification PHP et soumet le formulaire de connexion standard drupal, sans vérifier les rôles ou autorisations spécifiques. Donc, tout drupal l'utilisateur travaillera.
Faites un test de service Web appelez avec curl ou wget pour le tester. Il y a aussi des instructions sur la façon d'appeler avec PHP dans la réponse appel avec curl stackoverflow.
Le module ci-dessus est utilisé pour authentifier les appels de services en utilisant la technique Authentification d'accès de base .. Vous utiliserez votre Drupal nom d'utilisateur et mot de passe pour authentifier les appels de services en ajoutant l'en-tête d'autorisation à l'appel de service comme suit
Lorsque l'agent utilisateur souhaite envoyer les informations d'authentification du serveur, il peut utiliser l'en-tête d'autorisation.
L'en-tête d'autorisation est construit comme suit:
Le nom d'utilisateur et le mot de passe sont combinés dans une chaîne "nom d'utilisateur: mot de passe"
Le littéral de chaîne résultant est ensuite codé à l'aide de la variante RFC2045-MIME de Base64, sauf sans s'y limiter à 76 caractères/ligne. La méthode d'autorisation et un espace, c'est-à-dire "Basic" sont ensuite placés avant la chaîne codée.
Par exemple, si l'agent utilisateur utilise 'Aladdin' comme nom d'utilisateur et 'open sesame' comme mot de passe, l'en-tête est formé comme suit:.
Autorisation: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
Par exemple ci-dessous est l'appel utilisant curl ..
curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice
Sélectionnez votre point de terminaison et cliquez sur Modifier
Utilisez un outil tel que https://addons.mozilla.org/fr/firefox/addon/restclient/ pour tester votre client:
Remarque: J'ai eu des problèmes avec cela, même si l'option Authentification de base HTTP a été marqué en appelant une ressource de ce noeud final renvoyant 200 au lieu de 401 . Autrement dit, le module n'a pas réussi à sécuriser mon point de terminaison.
Le problème apparaît dans:
https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4
Je l'ai résolu en faisant un patch pour le module:
Quel est le problème: après avoir défini tous les paramètres:
Et vous avez remarqué que si vous ne désactivez pas l'autorisation "Afficher le contenu publié", tout utilisateur peut avoir accès au point de terminaison de l'API de service avec un résultat renvoyé.
Après avoir installé le Services Basic Authentication
module allez dans REST paramètres de votre serveur:
/admin/structure/services
Entrez l'option Edit
et en bas se trouve une case à cocher:
HTTP basic authentication
Activez-le et appuyez sur le bouton Enregistrer.