Comment utiliser l'authentification de base des services?

10

Comment utiliser le module d' 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?

Rijalul fikri
la source

Réponses:

11

Le module authentifie un appel de service Web contre des comptes Drupal.

  1. Activer le module
  2. Configurer un utilisateur 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 les en- têtes d'authentification PHP standard et soumet le formulaire de connexion drupal standard, sans vérifier les rôles ou autorisations spécifiques. Ainsi, tout utilisateur drupal fonctionnera.

Effectuez un test de service Web avec curl ou wget pour le tester. Il y a aussi des instructions sur la façon d'appeler avec PHP dans l' appel avec la réponse curl stackoverflow.

Interlated
la source
Est-ce complètement différent de l'utilisation de cette structure dans un seul appel URL? myusername: [email protected]/callback
Citricguy
@Citricguy n'est pas différent. Cette syntaxe est fournie par le schéma d'URI en.wikipedia.org/wiki/URI_scheme . Je ne le ferais pas de cette façon. Certains services REST peuvent être testés dans un navigateur et je serais inquiet que les informations d'identification soient entrées dans l'historique du navigateur. Avec https, les informations d'identification sont cryptées. Cela dépendrait également de la bibliothèque http, php http pourrait être OK voir le commentaire sur php.net/manual/en/features.http-auth.php#44686 . Les navigateurs Microsoft ne prennent plus en charge la syntaxe, donc si vous utilisez javascript pour passer l'appel, cela peut ne pas fonctionner. Certaines API utilisent cette méthode goo.gl/eS9mqv
Interlated le
Désolé, la façon dont vous implémentez l'appel n'a aucun impact sur l'appel. Donc, tester avec u: [email protected] si cela fonctionne est très bien. Je dis qu'il peut y avoir des problèmes de mise en œuvre comme ça. Je pense que les en-têtes, pas l'URL le plus tôt possible pour rationaliser les tests.
Interlated le
4

Le module ci-dessus est utilisé pour authentifier les appels de services en utilisant la technique d' authentification d'accès de base . Vous utiliserez votre nom d'utilisateur et votre mot de passe Drupal 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
Anil Sagar
la source
2
oui, je l'ai déjà lu, mais je ne sais toujours pas comment le mettre en œuvre? que faire après l'installation du module?. Toute aide est la bienvenue. merci
Rijalul fikri
2
  1. Une fois le module activé, allez dans Structure> Services
  2. Sélectionnez votre point de terminaison et cliquez sur Modifier entrez la description de l'image ici

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

entrez la description de l'image ici

Remarque: j'ai eu des problèmes avec cela, même si l'option d' authentification de base HTTP était marquée en appelant une ressource de ce point de terminaison renvoyait 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

Artur Kędzior
la source
1

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

user57293
la source
0

Après avoir installé le Services Basic Authenticationmodule, accédez aux paramètres REST de votre serveur:

/admin/structure/services

Entrez l' Editoption et en bas il y a une case à cocher:

HTTP basic authentication

Activez-le et appuyez sur le bouton Enregistrer.

Michal Przybylowicz
la source
Quel utilisateur: mot de passe que j'utiliserai pour l'authentification de base HTTP?
AshwinP
-1

N'oubliez pas d'utiliser le module d'accès au contenu.

Ajout de détails supplémentaires à la demande de MPD.

Si vous n'utilisez pas le module d'accès au contenu, l'utilisateur verra tout le contenu, y compris créé par d'autres, qu'il n'était pas censé voir. Par exemple, l'utilisateur A a stocké des données personnelles que l'utilisateur B n'est pas censé voir ou vice versa. Le module d'authentification de base des services active l'authentification mais n'applique pas l'accès au contenu. Le module d'accès au contenu applique cela. Si vous n'utilisez pas le contrôle d'accès au contenu, il est inutile d'authentifier un utilisateur.

techwestcoastsfosea
la source
Pouvez-vous développer comment ce module peut répondre aux besoins de l'utilisateur?
mpdonadio
Veuillez voir ma mise à jour dans la réponse d'origine.
techwestcoastsfosea