web-dev-qa-db-fra.com

Comment utiliser l'authentification de base des services?

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?

10
Rijalul fikri

Le module authentifie un appel de service Web par rapport aux comptes drupal.

  1. Activer le module
  2. Configurer un drupal
  3. Effectuez l'appel de service Web avec les informations d'identification de l'utilisateur.

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.

11
Interlated

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
4
Anil Sagar
  1. Une fois le module activé, accédez à Structure> Services
  2. Sélectionnez votre point de terminaison et cliquez sur Modifier enter image description here

  3. Utilisez un outil tel que https://addons.mozilla.org/fr/firefox/addon/restclient/ pour tester votre client:

enter image description here

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:

https://www.drupal.org/node/2734207

2
Artur Kędzior

Quel est le problème: après avoir défini tous les paramètres:

  1. activer le module d'authentification de base des services
  2. créer un point de terminaison api de services, par exemple: obtenir tous les nœuds par
  3. cochez la case "Authentification HTTP de base" sur la page d'édition
  4. créer un utilisateur

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é.

1
user57293

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.

0