Wie verwenden von LDAP-Anmeldeinformationen offline?
Ich würde gerne einen LDAP-server (wahrscheinlich Apache-Verzeichnis) zum verwalten von Anmeldeinformationen und Anmeldeinformationen für eine Anwendung. Von Zeit zu Zeit muss die Anwendung offline zu arbeiten (laptop), ohne eine Verbindung zum LDAP-server.
Was ist die beste Art und Weise zu replizieren, die Anmeldeinformationen lokal?
Ich habe auch schon darüber nachgedacht:
-
Mit Mitose Replikation der LDAP-server auf dem laptop.
Aber es wäre eine ziemlich "schwere" und komplizierte Lösung. Außerdem Mitose scheint nicht beendet werden noch.
-
Exportieren Sie die Anmeldeinformationen als LDIF-Datei, die gespeichert werden können auf dem laptop.
Aber ich bräuchte einen Weg, um zu überprüfen, dass die LDIF-Datei, die stammt eigentlich aus dem LDAP-server (Die Datei sollte eine Art von Signatur). Außerdem möchte ich ablehnen, LDIF-Dateien, die nicht aktualisiert werden, für mehr als eine Woche. Es wäre schön, wenn ich vermeiden könnte, die Umsetzung Unterzeichnung und Alter check mich.
Andere Ideen oder tools, die mir helfen könnten?
Bearbeitet Edit: ich hatte einen Blick auf die Kerberos-weil die Dokumentation der Java-Kerberos-API scheint zu sagen, dass es ist möglich, eine zwischengespeicherte ticket in einen lokalen cache, und ich dachte, das könnte eine Lösung sein für mich. Zudem Kerberos Hinzugefügt werden kann als plugin für Apache-Verzeichnis.
Aber der Kerberos-cache speichert ist, entschlüsselt tickets (Ziel den Austausch mit anderen Anwendungen). Ich müsste die verschlüsselte version des Tickets überprüfen zu können das user-Passwort, die während einer offline-Sitzung. Fazit: Kerberos funktioniert nicht bieten eine einfache Lösung für mein problem.
- Ist es zwingend erforderlich, dass ein Benutzer noch nie angemeldet, bevor der laptop geht offline anmelden können, nachdem der laptop offline geht?
- Es wird wohl ok, wenn der Benutzer einmal anmelden online vor der Anmeldung auf offline.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wissen, dass wird es wohl ok, wenn der Benutzer einmal anmelden online vor der Anmeldung auf offline, betrachten Sie den folgenden Algorithmus:
(username + password)
LDAP
für die Authentifizierung(username + password)
hash(password)
als(cached_credentials)
für(username)
in lokale sichere Speicherung[[STOP]]
[[STOP]]
(cached_credentials)
für(username)
von lokalen sicheren Speicher(cached_credentials)
existiertAND
Aktueller als(1 week)
?(cached_credentials)
gegenhash(password)
[[STOP]]
[[STOP]]
(cached_credentials)
existiert nichtOR
weniger aktuell als(1 week)
?[[STOP]]
Dies ist (oder war, wenn ich mich Recht erinnere), durch die Art und Weise, das gleiche Modell beschäftigt, die von Windows NT+ für die Benutzer-Authentifizierung gegen die Domäne-Controller. Beim login-Versuch gemacht wird, um die Authentifizierung gegen die Domäne-controller und erstellen oder aktualisieren der lokalen (zwischengespeicherte) version des Benutzer-Profils. Wenn der Domänencontroller nicht verfügbar ist, wird der Benutzer aufgefordert zu gehen mit der Authentifizierung anhand der Anmeldeinformationen erfasst lokaler (Cache) - Profil (wenn eines vorhanden ist.)
BEARBEITEN
Hier ist die Lösung, die ich beschlossen, zu verwenden (ich habe bereits beschrieben, ist es in einem edit zu meiner Frage, aber ich möchte in der Lage zu akzeptieren eine Antwort zu "schließen" die Frage):
Als ich habe nicht eine andere Lösung gefunden, ich habe mich für eine LDIF-export, einen Zeitstempel hinzufügen als Kommentar am Anfang der Datei und dann die Datei signieren. Zum signieren der Datei, berechnet einen hash-Wert (SHA-1) der Datei + einen geheimen Schlüssel. Die Signatur Hinzugefügt wird als Kommentar am Anfang der Datei. Um die Signatur zu prüfen ich Entferne die erste Zeile der signierten Datei und berechnen den hash-Wert.