Wenn ich einen einzelnen Server mit mehreren Domänen verwende, ist die bevorzugte Methode zum Implementieren einer Single-Sign-On-Lösung für dieselbe Domäne. Ich verwende derzeit Geräte, habe ein paar Millionen Cookies auf separaten Domains und bin festgefahren. Neben der Implementierung von SSO muss ich auch die verschiedenen Cookies in eine zentrale Domäne migrieren. In Bezug auf die verschiedenen Server, haben sie nur eine einzige Seite, die mir verschiedene Zustände je nachdem, ob der Benutzer inSingle Sign-On, mehrere Domänen auf demselben Server, ruby on rails
Ich habe folgendes versucht wird protokolliert zeigen erfordert.
CORS: ein Pick Domäne als zentraler Authentifizierungsknoten. Von allen anderen Domains machen Sie domänenübergreifende Überprüfungen, um festzustellen, ob der Benutzer angemeldet ist. Um Cookies zu migrieren, ermitteln Sie, ob es ein "current_user" -Objekt gibt, senden Sie es an den Client, machen Sie eine CORS-Anfrage, signieren Sie den Benutzer und töten Sie das Token. Funktioniert super! ABER ... Nach dem Aufbau für 2-3 Wochen, es vollständig in IE. Sogar IE11, ich merke, dass die Standardeinstellung dieses Verhalten deaktiviert. bei
Rails.application.config.session_store
ohne Glück
versucht, mit dem Session-Speicher bastelt.
Ich experimentiere derzeit mit dem folgenden:
JSONP: Ich habe jemand jetzt die oben zu konvertieren versuchen, stattdessen JSONP, während ich einige andere Optionen versuchen:
Richten Sie einen benutzerdefinierten OAUTH-Anbieter ein. Wie zuvor wird es die "zentrale Domäne" sein, wenn die Person angemeldet ist, und mit einem Token, von dem die Benutzer Anfragen stellen können, zur angeforderten Domäne zurückkehren. https://github.com/songkick/oauth2-provider
Sieht man das an, aber es sieht veraltet aus? https://github.com/rubycas/rubycas-client. Ich habe auch das Gefühl, dass dies eine Lösung sein könnte, wenn ich das von Anfang an durchgespielt habe, aber angesichts dessen, wie weit wir in dem Projekt stecken, ist es mir unklar, wie ich die bestehenden Cookies übertragen würde. es ist auch unklar, ob diese beiden Anwendungen erfordert für mich (eine für Client (s), eine für Auth-Server)
Als ich durch jede dieser Möglichkeiten gehen, aufzustehen und zu laufen, wenn jemand eine Erfahrung gemacht hat tun, was ich tue, bitte informieren Sie mich und speichern Sie mir eine ganze Menge Arbeit :)
oAuth heruntergekommen ist wahrscheinlich der „richtige“ Weg, dies zu tun. Ich schlage vor, dass Sie Ihre Bemühungen dort konzentrieren. –