ldapjs-Authentifizierung (Benutzer-login setup)
Also ich bin derzeit ausgeführt wird node.js, die ldapjs installiert. Mein Ziel ist es, ein system zu haben, die verwendet ldapjs um zuzulassen, dass Benutzer die Anmeldung mit Benutzername und Passwort.
Habe ich gelesen, über die http://ldapjs.org Dokumentation für eine Weile jetzt gewesen, aber bin kämpfen, um zu verstehen, die ganze Idee von ldap und ldapjs Umsetzung.
Momentan habe ich das aus der Dokumentation
var ldap = require('ldapjs');
var server = ldap.createServer();
server.bind('cn=root', function(req, res, next) {
if (req.dn.toString() !== 'cn=root' || req.credentials !== 'secret')
return next(new ldap.InvalidCredentialsError());
res.end();
return next();
});
server.listen(1389, function() {
console.log('LDAP server up at: %s', server.url);
});
Die mir erlaubt, führen Sie die unten und erfolgreich binden an den server.
ldapsearch -H ldap://localhost:1389 -x -D cn=root -w secret -LLL -b "o=myhost" objectclass=*
Aber ich bin mir wirklich nicht sicher, wohin Sie gehen von hier aus oder sogar, wenn dies der richtige Ansatz...
Die ideale Einstellung wäre, um eine Palette von Benutzer und Passwörter und kann auf eine erfolgreiche ldap-Verbindung bestätigen Sie die Angaben korrekt sind und Antworten mit true, oder false, wenn der Benutzername/Passwort falsch war.
Kennt jemand eine gute Ressourcen für die Suche, mehr über diese, oder besser noch vorschlagen kann, einige grundlegende client - /server-side-code, geben Sie mir eine Vorstellung davon, wo Sie als Nächstes gehen!
Alle Antworten, wäre wirklich dankbar.
Vielen Dank
InformationsquelleAutor Mac | 2012-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nie benutzt ldapjs, aber basierend auf dem, was ich eben schnell gelesen in seinem scheinbar unvollständige Dokument ist, kann es verwendet werden, um die Implementierung einer LDAP-server oder einen LDAP-client, das scheint das zu sein, was Sie zu tun versuchen (D. H., ich nehme an, Sie möchten die Authentifizierung der Benutzer in Ihrer Anwendung gegen einen bestehenden LDAP-server). Die meisten der Beispiele in das Dokument konzentrieren sich auf die Schaffung einer LDAP-server lauscht auf einem bestimmten port und interagiert mit einem back-end-Datenbank. Wenn Sie nicht versuchen, einen LDAP-basierten Schnittstelle zwischen dem back-end-Datenbank oder speichern von Benutzern und Kennwörtern, dann haben Sie wahrscheinlich nicht brauchen, die server-API. Wenn Sie bereits einen LDAP-server laufen, dann müssen Sie Ihre client-API, so etwas zu tun:
1.Binden Sie anonym an den LDAP-server, Verzeichnis-Dienste, einschließlich der Authentifizierungs-services. Es sieht aus wie Sie können nur tun Sie dies mit:
2.Suchen Sie nach dem Benutzernamen (z.B. e-mail-Adresse) für den entsprechenden Eintrag DN
3.Schnappen Sie sich den DN des zurückgegebenen Eintrag ( entry.Objekt ). Die Dokumentation dieser Bibliothek spricht nicht viel darüber, wie diese Objekte verwendet werden kann (z.B., was Ihre Methoden, Eigenschaften etc. sind). Also, werden Sie haben, um herauszufinden, wie bekommt man eigentlich die DN oder die string-Darstellung der DN des Eintrags, die Sie gerade abgerufen, aus der Verzeichnis-server. [Siehe den Kommentar(E) unterhalb dieser Antwort]
4.Rebind auf dem server mit, dass DN:
5.Das Ergebnis der Bindung oben ist, was Sie brauchen, um zu bestimmen, ob die Authentifizierung erfolgreich war.
Wenn Sie versuchen, zu implementieren, die einen LDAP-server vor Ihrem Benutzer/Passwort Daten speichern, die für LDAP-basierte Authentifizierung, dann müssen Sie Ihre server-Beispiele. Ich persönlich denke, dies ist ein overkill und könnte problematisch sein in Bezug auf die Sicherheit.
entry.object.dn
(Aconsole.log(entry.object.dn)
könnte hilfreich sein, zu sehen, dass es das richtige Feld). Dann dieser Eintrag.Objekt.dn übergeben es an den Kunden aus.bindenclient.bind(entry.object.dn, password, function(err) { ...
InformationsquelleAutor Bora