Je dois me connecter à un service Web qui nécessite des informations d'authentification sous la forme d'un nom d'utilisateur et d'un mot de passe en texte brut. J'ai une connaissance de base de SOAP et j'ai réussi à me connecter à d'autres services web ouverts qui ne nécessitent pas de nom d'utilisateur ou de mot de passe en utilisant NuSOAP.Authentification SOAP avec PHP
Ce qui suit m'a été envoyé:
<?php
// Set up security options
$security_options = array("useUsernameToken" => TRUE);
$policy = new WSPolicy(array("security" => $security_options));
$security_token = new WSSecurityToken(array(
"user" => "xxx",
"password" => "xxx",
"passwordType" => "basic"));
// Create client with options
$client = new WSClient(array("wsdl" => "https://xxx.asmx?wsdl",
"action" => "http://xxx",
"to" => "https://xxx",
"useWSA" => 'submission',
"CACert" => "cert.pem",
"useSOAP" => 1.1,
"policy" => $policy,
"securityToken" => $security_token));
// Send request and capture response
$proxy = $client->getProxy();
$input_array = array("From" => "2010-01-01 00:00:00",
"To" => "2010-01-31 00:00:00");
$resMessage = $proxy->xxx($input_array);
?>
Après quelques recherches, je crois comprendre que la mise en œuvre ci-dessus utilise WSO2. Je dois être capable de le faire sans utiliser wso2.
J'ai fait de mon mieux pour rechercher des ressources (Google, forums, etc) à propos de ce qui précède, mais je n'ai rien trouvé. J'ai lu des tutoriels sur SOAP et j'ai pu configurer un client SOAP en utilisant PHP mais je n'arrive pas à comprendre toutes les règles d'authentification et les "politiques".
Une explication de la façon d'y parvenir et peut-être quelques liens vers d'autres lectures à ce sujet serait très appréciée car je me suis arraché les cheveux! Idéalement je voudrais des liens vers des ressources pour un débutant absolu à l'authentification SOAP.
Merci. P.S certains des liens/informations d'identification dans le ci-dessus auraient pu être xxx'd pour la vie privée.
j'ai essayé ci-dessus et également inclus les paramètres supplémentaires de mon code d'origine en $ soapFunctionParameters mais je reçois l'exception « Action pour le destinataire final est nécessaire, mais pas présent dans le message ». Que pensez-vous de la fonction WSPolicy et du jeton WSSecurity? Encore une fois, je suis un débutant complet à cela vraiment. –
FYI- le $ soapFunctionParameters dans le $ soapResult = ... soapCall() est orthographié incorrectement. Je suis tombé sur ceci en recherchant cette information et utilisais votre code pour tester. Peut être sans conséquence puisque c'est à partir de 2010. – Travis
@guss Comment le serveur soap authentifie-t-il les données de connexion passées avec le tableau '$ soapParameters' au soapclient? Dans mon script de serveur de savon PHP, '$ _SERVER ['PHP_AUTH_USER']' n'est pas défini, alors comment dois-je valider? –