Desidero autenticare un utente Windows nell'app NodeJS
. Esiste ancora un componente aggiuntivo? C'è node-krb5
ma non supporta ancora Windows.Nodejs o ExpressJS Autenticazione Windows
risposta
Ho aggiunto un post per questo post qui http://hadenoughpi.wordpress.com/2013/04/16/node-js-windows-authentication-using-edgejs/ Spero che questo sia uno dei modi giusti.
Se l'host su IIS con iisnode https://github.com/auth0/passport-windowsauth funziona bene! tessera windowsauth è dotato di un'integrazione annuncio, ma se si desidera solo il nome utente al fine di attuare la propria logica authorzation si può fare in questo modo
web.config:
<system.webServer>
<iisnode promoteServerVars="LOGON_USER" />
</system.webServer>
server.js:
var passport = require('passport');
var WindowsStrategy = require('passport-windowsauth');
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
passport.use(new WindowsStrategy({
integrated: true
}, function(profile,done) {
var user = {
id: profile.id,
};
done(null, user);
}));
app.all("*", passport.authenticate("WindowsAuthentication"), function (request,response,next){
next();
});
allora è possibile accedere al userid sull'oggetto richiesta nelle altre vie:
app.get("/api/testAuthentication", function(request, response){
console.log(request.user.id + " is authenticated");
});
se si desidera implementare la propria logica di autorizzazione utilizzando l'ID utente è possibile definire una funzione middleware come questo:
app.get("/api/testAuthorization", hasRole("a role"), function(request, response, next){
console.log(request.user.id " is authenticated and authorized");
});
dove hasRole assomiglia a questo:
function hasRole(role) {
return function(request,response,next){
//your own authorzation logic
if(role == "a role")
next();
else
response.status(403).send();
}
}
Ma quando mettiamo il nodo dietro IIS, perdiamo molti vantaggi del nodo! – DaNeSh
Sono in grado di ottenere la risposta '(request.user.id)' da Url nel browser. ma quando sto cercando di accedere allo stesso URL, ricevo errore Errore non autorizzato. So che questo post è vecchio ma, se possibile, puoi condividere qualche esempio in cui hai usato questo genere di cose? –
node-sspi
: trovato facile ed efficiente usare.
- 1. Nodejs Clustering e sessioni expressjs
- 2. nodejs ExpressJS funziona solo per l'indice
- 3. spostare il file in ExpressJS/NodeJS
- 4. Autenticazione Google con nodejs
- 5. ldap nodejs autenticazione directory attiva
- 6. Nodejs + expressjs riproduce la richiesta dopo il timeout del server
- 7. Imposta cookie per dominio anziché subDomain utilizzando NodeJS e ExpressJS
- 8. User.Identity.Name con autenticazione Windows
- 9. Autenticazione moduli Forming con autenticazione Windows
- 10. Autenticazione GINA Windows personalizzata
- 11. Watin Autenticazione Windows
- 12. Autenticazione Windows manuale
- 13. socket.io + Redis + expressjs grappolo - ottenere oggetto socket in expressjs richiedere
- 14. Autenticazione file eseguibile di Windows
- 15. in expressjs
- 16. con ExpressJS
- 17. JMeter con autenticazione di Windows?
- 18. Autenticazione LDAP su Windows Phone
- 19. Autenticazione di bypass di Windows
- 20. NancyFx e autenticazione di Windows
- 21. Utilizzo di uglifyjs con nodejs in windows
- 22. ExpressJS Passare variabili a JavaScript
- 23. expressjs associare a un indirizzo IP specifico
- 24. nodeJS-Express o Meteor o Derby
- 25. Utilizzo di JWT con autenticazione Active Directory nel backend NodeJS
- 26. Nodejs scraping della pagina Web con cookie di autenticazione
- 27. Autenticazione REST NodeJS utilizzando Passport e OAuth2 + social network
- 28. ExpressJS vs MeteorJS
- 29. Elevate NodeJS/Electron process su Windows
- 30. nodejs npm global config mancante su windows
Questo sconfigge lo scopo delle finestre di autenticazione che è single sign on. La tua soluzione richiede il passaggio di nome utente, dominio e password. –