Nous mettons actuellement en œuvre un nouveau serveur OpenSSO. Le serveur est sur un serveur différent du serveur Web et j'ai de la difficulté à obtenir l'authentification sur notre serveur Web PHP.Authentification PHP OpenSSO
Le jeu de cookies avec openSSO Token s'appelle iPlanetDirectoryPro. Ceci est défini à partir de authServer.company.com. J'ai besoin de lire ceci depuis webserver.company.com et d'envoyer une demande HTTPRequest à authserver.company.com pour récupérer les attributs de ce jeton OpenSSO.
Actuellement mon code ressemble à ceci mais il ne fonctionne pas, je suspecte parce que je ne lis pas correctement le cookie.
$url = 'http://authServer.company.com:8080/opensso/identity/attributes';
$r = new HttpRequest();
$r->setURL($url);
$r->setMethod(HTTP_METH_POST);
$valarray = array(
'Host' => 'authServer.company.com',
'Content-Type' => 'application/x-www-form-urlencoded',
'Cookie' => "iPlanetDirectoryPro=$_COOKIE[iPlanetDirectoryPro]"
);
$r->addHeaders($valarray);
var_dump($r);
var_dump($valarray);
#
# request
#
print "<br/>";
print "<b>what i'm saying to the server</b>";
print "<pre>";
#print "iPlanetDirectoryPro cookie: $_COOKIE[iPlanetDirectoryPro]";
print $r->getRawRequestMessage();
print "</pre>";
print "iPlanetDirectoryPro cookie: $_COOKIE[iPlanetDirectoryPro]";
$r->send();
#
# response
#
print "<b>what the server is telling me</b>";
print "<pre>";
$response_body = $r->getResponseBody();
print $response_body;
print "</pre>";
Des idées à ce sujet? Est-ce que je vais dans le mauvais sens?
Mise à jour - La ligne de fond que j'ai trouvée était le serveur ne pouvait tout simplement pas lire le cookie car il venait d'un autre serveur. En tant que travail aronud j'ai implémenté une API REST qui permet à l'utilisateur de soumettre une page de connexion à partir du serveur web. Son envoyer à l'AuthServer qui renvoie une réponse. La réponse devrait normalement être un jeton sauf si elle est invalide. Si c'est un jeton, un nouveau cookie est créé avec le jeton afin que les applications puissent ensuite utiliser ce jeton pour communiquer avec le serveur d'authentification, mais le cookie réside sous le domaine des serveurs Web
Vous n'êtes pas développer avec le rapport d'erreurs tourné sur toute la hauteur, êtes-vous? Veuillez le faire - il y a au moins deux erreurs de niveau notice dans votre code qui peuvent poser problème. De plus, quelle classe de requête HTTP utilisez-vous? – Charles
J'utilise la classe PECL HTTPRequest. Je reçois un retour du serveur mais c'est un 401 Token est NULL – CogitoErgoSum