Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Idee gesucht: Ein Login - Mehrere Domains (https://boardunity.de/idee-gesucht-login-mehrere-domains-t4725.html)

TRS 06.03.2007 12:08

Idee gesucht: Ein Login - Mehrere Domains
 
Moin!

Aufgabe: Ein Login, mehrere Domains
Beispiel: Google Account

In einem aktuellen Projekt (Rails) ist es meine Aufgabe die Benutzerverwaltung ueber mehrere Domains zu verteilen. Das bedeutet, dass es eine zentrale Benutzerverwaltung existiert und mehrere Website auf diese zugreifen. Nach dem Login des Nutzers soll dieser auf jeder Website angemeldet sein. Als Werkzeug steht severseitige Programmierung, Javascript, Ajax, Iframes, Datenbankzugriff und weitere Techniken, die dem Ziel dienen.

Problem: Im Moment ist das Problem vor allem, dass die Daten nicht auf jeder Website zur Verfuegung stehen. Es ist absolut kein Problem einen einzelnen Login auf einer externen Seite durchzufuehren, aber die Uebertragung auf andere Domains ist komplex.

Also Jungs, wer hat Ideen?

Luki 06.03.2007 12:45

so etwas gibt es: mach Dich mal über folgendes schlau:

OpenID: an actually distributed identity system
claimID.com - Manage your online identity
ClaimID - Single Sign On Login Systeme im Internet

TRS 06.03.2007 12:52

Eine Loesung wie openID ist problemlos umsetzbar, aber es weiterhin nicht moeglich den erfolgreichen Login auf alle Websites zu uebertragen. Aus diesem Grund ist openID ebenfalls keine Loesung. Das Ziel ist es ein Login fuer alle Websites zu entwickeln.

DerTobi75 06.03.2007 14:02

Zitat:

Zitat von TRS (Beitrag 39182)
Eine Loesung wie openID ist problemlos umsetzbar, aber es weiterhin nicht moeglich den erfolgreichen Login auf alle Websites zu uebertragen. Aus diesem Grund ist openID ebenfalls keine Loesung. Das Ziel ist es ein Login fuer alle Websites zu entwickeln.

Halte ich nahezu für unmöglich! Da Du ja einen Cookie setzen müsstest und das geht ja nur domainweit! Sobald Deine Webseiten jeweils eine andere Domain haben, wird es schwer bis unmöglich, würde ich sagen.

Tobi

codethief 06.03.2007 17:55

Ich würde sagen, da hilft es nur eine zentrale Seite (login.domain.tld oder so) einzurichten, auf die beim ersten Besuch der jeweiligen Domain weitergeleitet wird und die bei Vorhandensein eines Cookies den auch für die entsprechende Domain setzt. Sollte er nicht gesetzt sein, kommt es natürlich zu kaum einer Veränderung (ein Cookie wär evtl. noch nötig um anzuzeigen, dass der Cookie-Check schon erfolgte), in beiden Fällen wird der User dann zurück zur Domain umgeleitet.

TRS 07.03.2007 10:56

In meinem Fall ist das Ziel, dass saemtliche Nutzer sofort unter allen Domains eingeloggt sind. Jedes Cookie ist an eine Domain gebunden und somit stehe ich vor Wahl:

1. Cookies: Fuer jede Domain ein Cookie zu setzen (afaik unmoeglich)
2. Iframes: Zentralisierter Login in einem Iframe. Das Cookie wird fuer die Domain des Iframes gesetzt und die Website muss die Informationen aus dem Iframe laden.
3. AJAX: Eine Moeglichkeit teste ich im Laufe des Abends heute.

Gru-ss

wurstbrot 07.03.2007 13:31

Also ich halte deine Gedanken für recht kritisch. Was willst du denn als Cookie speichern?

Die BenutzerID?
Dann ist es für jeden Hacker problemlos möglich, sich bei dir im beliebigen System als Benutzer 5 zu registrieren

Das Passwort des Benutzers?
Wie willst du sicherstellen, dass das iFrame nur von erlaubten Server eingebunden wird und damit nicht unerlaubt das Passwort eines Benutzers ausgelesen wird? Zumal Benutzerpasswörter in Cookies sowieso fraglich sind. Selbst wenn du einen eindeutigen String verwendest, ist die Gefahr groß, dass dieser String geklaut wird.

Du müsstest also - um den Sicherheitswillen - für jedes Angebot einen individuellen String erzeugen, der den Benutzer und das zuvor registrierte Projekt eindeutig kennzeichnet. Die iFrame-Problematik zeigt dir aber, dass damit jedes System vorgaukelbar ist und deine Idee angreifbar ist.

Wenn, dann funktioniert das nur über eine zentrale Login-Seite (eigenständig), welche per Link eine Anmeldung an ein zweites System weiterleitet. Die Daten können dann verschlüsselt übetragen werden.

Wurstbrot

TRS 07.03.2007 15:50

Zitat:

Zitat von wurstbrot (Beitrag 39187)
Also ich halte deine Gedanken für recht kritisch. Was willst du denn als Cookie speichern? [...] Dann ist es für jeden Hacker problemlos möglich, sich bei dir im beliebigen System als Benutzer 5 zu registrieren

Dies ist Abhaengig vom Verhalten des Nutzers. Erwuenscht der Nutzer einen temporaeren Zugang zu den Funktionen der Website, so wird dieser Login in einer Session gespeichert. Das Cookie beinhaltet die Session.id waehrend die Session in meinem Fall in der Datenbank gespeichert ist.

Ein permanenter Login erfordert jedoch die Speicherung der user.id sowie des user.password in verschluesselter Form. Beim Aufruf der Website erfolgt serverseitig ein Abgleich des Cookies mit der Datenbank. Wenn dieser erfolgreich ist, so wird eine Session eroeffnet. Wenn dieser mislingt, wird das Cookie geloescht.

Das Problem der permanten Speicherung eines Logins existiert in jeder Anwendung. Das vBulletin erlaubt es jedem Nutzer meines Computers in meinem Namen zu handeln. Amazon im Gegenzug verlangt fuer viele Funktionen die erneute Eingabe des Passworts.

Zitat:

Zitat von wurstbrot (Beitrag 39187)
Wie willst du sicherstellen, dass das iFrame nur von erlaubten Server eingebunden wird und damit nicht unerlaubt das Passwort eines Benutzers ausgelesen wird?

Gegenfrage: Warum sollte (irgend)eine Website das Passwort eines Nutzers ausgeben?

Leider speichern in der Realitaet viele Websites die Passwoerter der Nutzer im Klartext und bietet zusaetzlich noch Funktionen aus der Datenbank auszulesen...

Zitat:

Zitat von wurstbrot (Beitrag 39187)
Wenn, dann funktioniert das nur über eine zentrale Login-Seite (eigenständig), welche per Link eine Anmeldung an ein zweites System weiterleitet. Die Daten können dann verschlüsselt übetragen werden.

Das ist ein ziemlicher Umweg in meinen Augen, denn eine serverseitige Abfrage loest das Problem einfacher und schoener.

Um es zu betonen: Das Ziel ist, dass ein eingeloggter Nutzer unter allen Domains als eingeloggt erscheint. Die Loginfunktion zu zentralisieren ist ist in drei Sekunden gemacht mit <form action="http://domain.tld/user/login" ....

Gruss

Jens* 25.03.2007 18:19

Bei vb.org habe ich dazu gerade folgendes entdeckt.
CES Cookie Cutter - Share Cookies Between Domains CES Cookie Cutter - Share Cookies Between Domains - vBulletin.org Forum

MaMo 25.03.2007 18:51

Hi,

kann sich den mal jemand, der eine vB-Lizenz besitzt, herunterladen und die Technik hier dokumentieren? Würde mich sehr interessieren, aber ohne vB-Lizenz ist das schwer daran zu kommen :(

MaMo

phun 21.05.2009 02:40

Nach einer Lösung für diese Problem suche ich ebenfalls, die vBulletin Seite hab ich auch schon gefunden, allerdings wie mein Vorredner schon sagt bin ich ebenfalls nicht im Besitz einer vBulletin Lizenz sodass ich mir den Source nicht näher anschauen kann :(

Wäre schön wenn jemand mir dieses Modul zukommen lassen könnte oder halt selbst durchschaut und mir erklären kann wie das geht.

Cookies für andere tlds zu setzen funktioniert mit php ja so nicht. Allerdings habe ich irgendwo gelesen das man die php.ini so anpassen kann das es ggf doch möglich wäre. Leider hab ich den Link davon verbummelt :(

Also wenn jemand eine Lösung für das Problem gefunden hat wäre ich diesem sehr zu dank verpflichtet wenn er mich daran teilhaben lassen könnte.

Ich hatte jetzt noch die Idee das man von domain1.de einen cookie für domain1.de erstellen lässt und dann per php-header auf domain2.de weiterleitet welche dann einen cookie für domain2.de erstellt und diese wiederum weiterleitet auf domain3.de und jeweils per GET der Sessioncode übergeben wird. Das wäre zwar nicht das Gelbe vom Ei da man wenn ein neues Projekt hinzugefügt wird erst schauen müsste welches das zuletzt hinzugefügt Projekt wäre um dieses dann wieder zu erweitern aber vllt geht das ja so.

Bei Google und bspweise primusportal funktioniert das ja auch irgendwie nur leider find ich beim besten Willen kaum bis keine Informationen darüber :(

JonnyX 21.05.2009 11:53

Wenn gar nichts klappt, könntest du ja auch eine kleine Desktop Software schreiben, wo er sich einloggen kann und von der App dann direkt zB die Seiten / Foren aufrufen kann.

beim einloggen überprüft die Software den Login und erstellt dann gleichzeitig die ganzen Cookies.

Sowas dann zB auch als Widget für Vista User würde sicher so manchen User sicherlich freuen, könnte ich mir vorstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25