Nous construisons un module Drupal qui sera destiné aux "partenaires d'entreprise" de confiance. Lorsqu'un utilisateur clique sur un lien, il doit être redirigé vers notre site comme s'il était un utilisateur connecté.
Comment dois-je vérifier que l'utilisateur provient effectivement de ce site? Il ne semble pas que "HTTP_REFERER" soit suffisant, car il semble que cela puisse être simulé.
Nous fournissons à ces sites partenaires des clés API. Si je reçois la clé API sous la forme d'une valeur POST, transmise via https, cela suffirait-il pour indiquer que l'utilisateur est un véritable utilisateur du site partenaire?
Si une combinaison unique de nom d'utilisateur et de mot de passe est envoyée via https et que ces informations d'identification sont valides, il s'agit d'un moyen sécurisé de confirmer l'identité d'un partenaire. C'est ainsi que fonctionnent la plupart des API, y compris celles des sociétés de traitement de paiements.
Si un site Web partenaire utilise votre API, vous devez leur fournir une clé API privée (côté serveur) et une clé API publique (côté utilisateur).
Cela permet ensuite au "moduel" de, comme vous le dites, de transmettre la clé d'API publique via POST ou un GET dans l'URL.
Cette contrainte peut être "falsifiée" mais vous pouvez donner à un utilisateur un cookie ou stocker un identifiant côté serveur afin qu'elle ne puisse être "falsifiée" qu'une seule fois.