1 serveur PHP qui gère l'authentification unique (signe unique sur) l'autre est un applicarion Web fonctionne sur rubis sur des rails (ROR)
[...]
mais nous avons besoin de mettre en œuvre de nouvelles fonctionnalités où le serveur ROR doit soumettre une demande d'authentification à l'authentification unique au nom du navigateur
Votre modèle SSO n'a pas besoin de fonctionner de cette façon. En fait, ça ne devrait pas.
SSO fonctionne habituellement comme ceci. J'utilise des noms non standard parce que je suis fatigué et je ne me souviens pas de ce que leurs noms officiels sont les suivants:
- utilisateur final. Le mec avec le navigateur qui doit être connecté
- Page Server: Le site auquel l'utilisateur final tente de se connecter.
- Serveur d'authentification: site qui possède réellement la version principale des données de l'utilisateur final.
- utilisateur final demande une page du Page Server.
- Page Server vérifie l'état de connexion existant de l'utilisateur final. Si l'utilisateur final n'est pas connecté, le Page Server redirige l'utilisateur final vers le serveur d'authentification avec un jeton unique .
- Le serveur d'authentification reçoit la demande de l'utilisateur final avec le jeton unique .Il fait tout ce qu'il doit faire pour enregistrer l'utilisateur.
- Une fois l'utilisateur connecté, le serveur d'authentification renvoie l'utilisateur final au serveur de pages avec un autre, différent, jeton unique.
- La requête envoyée par l'utilisateur final au serveur de pages entraîne le serveur de page à faire une demande au serveur d'authentification. La demande comprend à la fois le jeton unique original et le jeton différent, différent, unique.
- Le serveur d'authentification répond au serveur de pages avec des informations sur l'utilisateur ou un message d'erreur si les jetons ne sont pas valides. Une fois les données utilisateur récupérées, les jetons sont invalidés par le serveur d'authentification. Soit dit en passant, vous devez utiliser SSL pour l'ensemble de ce processus.)
- Le Page Server enregistre l'utilisateur et stocke toutes les informations dont il a besoin à propos de l'utilisateur final.
A aucun moment le Page Server « usurper » l'utilisateur final, et à aucun moment faire le Page Server ou le serveur d'authentification doivent toucher uns des autres Fin des données de session utilisateur.
A aucun moment, le Page Server n'obtient une copie des informations d'identification de l'utilisateur. L'authentification réelle de l'utilisateur final se produit uniquement sur le serveur d'authentification. Le Page Server demande des données sur l'utilisateur après que le serveur d'authentification a rebondi l'utilisateur avec le jeton de demande approprié.
Vous pouvez rendre ce processus plus complexe, si vous le souhaitez. Par exemple, l'URL renvoyée à l'utilisateur par le serveur d'authentification peut devoir être personnalisée. Vous pouvez inclure l'URL de retour avec la demande de l'utilisateur final au serveur d'authentification, mais si vous le faites, vous devez le signer (en utilisant, par exemple, HMAC) pour vous assurer qu'un crétin malveillant ne le manipule pas en cours de route.
Clair comme de la boue?
Voilà comment fonctionnent les sessions. – alex
Qu'essayez-vous de faire? Il y a probablement un meilleur moyen d'atteindre votre objectif. – NullUserException
bienvenue à stackoverflow –