Maison > développement back-end > tutoriel php > Comment puis-je m'authentifier auprès d'un service Web protégé par mot de passe à l'aide de PHP ?

Comment puis-je m'authentifier auprès d'un service Web protégé par mot de passe à l'aide de PHP ?

Susan Sarandon
Libérer: 2024-11-07 08:24:03
original
511 Les gens l'ont consulté

How Can I Authenticate to a Password-Protected Web Service Using PHP?

Connexion à un service Web protégé par mot de passe et résolution des problèmes d'autorisation

Lors de la tentative d'accès à un service Web protégé par la sécurité WS via PHP, vous pourriez rencontrer des difficultés pour configurer l'autorisation appropriée. Ce guide vise à fournir une solution complète pour résoudre ces défis.

Dépannage des problèmes d'autorisation

  • Si le script crée une demande sans authentification préalable, il est probable échouer avec une erreur d'analyse WSDL.
  • Définir le service en tant que serveur Soap peut également entraîner une ERREUR SOAP liée à l'analyse WSDL.

Solution : Utilisation de WsseAuthHeader

Pour établir une connexion sécurisée, vous pouvez étendre la classe SoapHeader et créer un en-tête d'authentification conforme à Wsse :

class WsseAuthHeader extends SoapHeader {

    private $wss_ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';

    function __construct($user, $pass, $ns = null) {
        if ($ns) {
            $this->wss_ns = $ns;
        }
        // ... (rest of the class definition as provided in the answer)
    }
}
Copier après la connexion

Une fois créé, l'objet WsseAuthHeader peut être défini comme en-tête Soap. :

$wsse_header = new WsseAuthHeader($username, $password);
$x = new SoapClient('{...}', array("trace" => 1, "exception" => 0));
$x->__setSoapHeaders(array($wsse_header));
Copier après la connexion

Cette approche devrait réussir à établir une connexion authentifiée avec le service Web protégé par la sécurité WS.

Options supplémentaires

  • Utilisation d'un horodatage et d'un nom occasionnel : Pour une sécurité accrue, envisagez d'incorporer un horodatage et un nom occasionnel dans votre WsseAuthHeader.
  • Référence à d'autres solutions : Explorez des ressources supplémentaires pour des solutions alternatives. approches pour accéder aux services Web protégés par la sécurité WS avec PHP, telles que :

    • https://stackoverflow.com/a/18575154/367456

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal