LDAP-Authentifizierung mithilfe von Pass-ldapauth npm
Ich versuche mich zu authentifizieren openLDAP den Benutzernamen und das Kennwort mithilfe von Pass-ldapauth npm. Während der Ausführung den code unten ich bin immer Fehler wie
{ message: 'Missing credentials' }
. Bitte helfen Sie mir, was ist Los mit meinem code.
var connect = require('connect'),
app = connect(),
passport = require('passport'),
LdapStrategy = require('passport-ldapauth');
//Credentials from the free LDAP test server by forumsys
//More info at: http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/
var OPTS = {
server: {
url: 'ldap://<ip>',
bindDn: '<admin username>',
bindCredentials: '<admin password>',
usernameField: "<passing actual username>",
passwordField: "<password>"
}
};
passport.use(new LdapStrategy(OPTS));
app.use(passport.initialize());
app.use(connectRoute(function (router) {
router.post('/login', function (req, res, next) {
passport.authenticate('ldapauth', {session: false}, function (err, user, info) {
console.log(info);
if (err) {
return next(err); //will generate a 500 error
}
//Generate a JSON response reflecting authentication status
if (!user) {
return res.send({success: false, message: 'authentication failed'});
}
return res.send({success: true, message: 'authentication succeeded'});
})(req, res, next);
});
}))
app.listen(8080);
Weitere details finden Sie in dieser badRequestMessage flash-Meldung für fehlende Benutzername/Kennwort (Standard: "Fehlende Zuverlässigkeit")
Sind die Werte in der Ihr WÄHLT, Objekt tatsächlich was in der obigen Liste aufgeführt, oder haben Sie entfernen Sie Sie für diesen posten?
Ich habe entfernt die tatsächlichen Werte für diesen post
Ich habe auf der Suche im Pass-ldapauth als gut, aber ich würde sagen, dass die Dokumentation gut ist, nur wenn Sie wirklich verstehen, wie es zu benutzen schon. Sie vielleicht check out this post: stackoverflow.com/questions/28159093/.... Für eine Sache, es sieht aus wie Sie liefern Benutzernamen und Passwörter, wo Sie sollte nur auf die Versorgung der Formular-Feld-Namen für die Dinge.
gemäß der Dokumentation, die in npmjs.com/package/passport-ldapauth, versuchte ich die Express Beispiel, das gibt mir Fehler "Fehlende Berechtigungen"
Ich hatte noch keine Zeit, um einzutauchen in das, aber ich bin wirklich daran interessiert zu hören, wenn Sie die Lösung gefunden. Bitte poste es wenn du gemacht hast!
Ich habe entfernt die tatsächlichen Werte für diesen post
Ich habe auf der Suche im Pass-ldapauth als gut, aber ich würde sagen, dass die Dokumentation gut ist, nur wenn Sie wirklich verstehen, wie es zu benutzen schon. Sie vielleicht check out this post: stackoverflow.com/questions/28159093/.... Für eine Sache, es sieht aus wie Sie liefern Benutzernamen und Passwörter, wo Sie sollte nur auf die Versorgung der Formular-Feld-Namen für die Dinge.
gemäß der Dokumentation, die in npmjs.com/package/passport-ldapauth, versuchte ich die Express Beispiel, das gibt mir Fehler "Fehlende Berechtigungen"
Ich hatte noch keine Zeit, um einzutauchen in das, aber ich bin wirklich daran interessiert zu hören, wenn Sie die Lösung gefunden. Bitte poste es wenn du gemacht hast!
InformationsquelleAutor user4324324 | 2015-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist meine Konfiguration:
Den
usernameField
undpasswordField
imOPTS
sind optional. Mein Programm ist mit dem default-Wertusername
undpassword
. Wenn dieusernameField
eingestellt ist, müssen Sie zum ändernsearchFilter
als(sAMAccountName={{<usernameField value>}})
oder(uid={{<usernameField value>}})
.Auch, um zu speichern der login-status in Ihrer Sitzung
express-session
- Modul erforderlich ist. Die session-Konfiguration ist wie:Dann Sie können verwenden der LDAP-Authentifizierung:
usernameField
eingestellt ist, müssen Sie zum ändern searchFilter als(sAMAccountName={{<usernameField value>}})
oder(uid={{<usernameField value>}})
." Könnten Sie ein Beispiel geben? Zum Beispiel, wenn ich Suche für den Benutzer "test", sollte dieusernameField
"test"?Nein,
usernameField
undpasswordField
sind die login form fields' Namen. Wenn Ihre login-Seite, die HTML enthält, zB.<input name="weirdusernamefield" type="text"/>
Sie würdeusernameField
zuweirdusernamefield
. Benutzer gibt den Benutzernamen (zB.test
) auf das login-Formular, und die Strategie kennt, um zu suchenweirdusernamefield
Wert, der dann verwendet für LDAP-suchen und-Bindung.InformationsquelleAutor G Chen
Laut der Dokumentation von Pass-ldapauth, das Objekt ist der Wert von server nicht enthalten usernameField und passwordField. Ihre Strategie sollte so Aussehen:
Aber als G Chen erwähnt in seiner Antwort, die usernameField und passwordField sind optional.
InformationsquelleAutor warun26
Bitte überprüfen Sie den folgenden Code, wo die Grundlegende Authentifizierung des Benutzers durchgeführt werden. Dieser code funktioniert, wenn ein Benutzer Anmeldeinformationen verifiziert werden müssen.
Brauchen wir 3 Felder viz. usernameField, passwordField und credentialsLookup
LDAP-Administrations-tools wie Userbooster light sind sehr nützlich, zu verstehen, wie die Authentifizierung geschieht.
Bereichen wie searchBase, searchFilter nicht weiter. Der Haftungsausschluss ist jedoch, dass Sie brauchen, um zu testen, um zu sehen, ob es wahr ist
InformationsquelleAutor user8414217
Vielleicht das Problem verursacht nicht die
passport-ldapauth
. Es kann einige Probleme mit Ihrem post-Anfragen. Prüfen Sie, ob es[usernameField]
,[passwordField]
in Ihrer Anfrage vor der Verwendungpassport.authenticate
.InformationsquelleAutor ruichao
Bitte überprüfen NPM mit "LDAP-Authentifizierung"
Kommen Sie in einem Paket namens ldapauth-Gabel. Dieses Paket scheint zu funktionieren korrekt.
Überprüfen Sie bitte die folgenden link, https://www.npmjs.com/package/ldapauth-fork
InformationsquelleAutor user8414217
InformationsquelleAutor user8414217
Verwenden nicht-admin Benutzernamen oder Passwort in DN. Wenn Sie möchten, um einen Benutzer zu authentifizieren, alles, was Sie brauchen, ist der eigene Benutzername und das Passwort.
Den
dn
wird die Bind-DN im LDAP. Hängt von Ihrem ldap-server-Konfiguration variiert. Verwendenldapsearch
zu Experimentieren, um herauszufinden, welche Sie verwenden sollten.Schrieb ich einen npm-Modul basiert auf Pass-ldapauth zur Vereinfachung der ldap-Authentifizierung login -.Bitte überprüfen Sie es heraus unter: https://github.com/shaozi/express-passport-ldap-mongoose
Einfache Nutzung:
InformationsquelleAutor Jingshao Chen