Chciałbym uwierzytelnić użytkownika systemu Windows w aplikacji NodeJS
. Czy jest jeszcze jakiś dodatek do tego? Jest node-krb5
, ale nie obsługuje jeszcze okien.Nodejs lub ExpressJS Windows Authentication
Odpowiedz
Dodałem wpis na blogu do tego tutaj http://hadenoughpi.wordpress.com/2013/04/16/node-js-windows-authentication-using-edgejs/ Mam nadzieję, że jest to jeden z właściwych sposobów.
Jeśli hostujesz na IIS z iisnode https://github.com/auth0/passport-windowsauth działa ładnie! paszportowe windowsauth pochodzi z integracji reklam, ale jeśli chcesz tylko nazwę użytkownika, aby zaimplementować własną logikę authorzation można to zrobić jak ten
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();
});
następnie można uzyskać dostęp do identyfikatora na obiekcie żądania w swoich innych trasach:
app.get("/api/testAuthentication", function(request, response){
console.log(request.user.id + " is authenticated");
});
jeśli chcesz zaimplementować własną logikę autoryzacji przy użyciu identyfikatora użytkownika można zdefiniować funkcję middleware takiego:
app.get("/api/testAuthorization", hasRole("a role"), function(request, response, next){
console.log(request.user.id " is authenticated and authorized");
});
gdzie hasRole wygląda następująco:
function hasRole(role) {
return function(request,response,next){
//your own authorzation logic
if(role == "a role")
next();
else
response.status(403).send();
}
}
Ale kiedy umieścimy węzeł za IIS, tracimy wiele korzyści Node! – DaNeSh
Jestem w stanie uzyskać odpowiedź '(request.user.id)' z Url w przeglądarce. ale gdy próbuję uzyskać dostęp do tego samego adresu URL, pojawia się błąd Nieautoryzowany błąd. Wiem, że ten wpis jest stary, ale jeśli to możliwe, czy możesz podzielić się przykładem, w którym użyłeś tego rodzaju rzeczy? –
node-sspi
: okazało się, że jest łatwy i wydajny używać.
- 1. Usuwanie sesje MongoDB, expressjs, nodejs
- 2. przenieść pliku w ExpressJS/NodeJS
- 3. Watin Windows Authentication
- 4. IIS Binding z Windows Authentication
- 5. Windows Authentication z ASP.NET MVC
- 6. RESTful-Authentication lub Authlogic?
- 7. włącz Windows Authentication w Windows 8.1
- 8. Połącz się z localhost: 3000 z innego komputera | expressjs, nodejs
- 9. Nodejs + expressjs powtórzy żądanie po upływie limitu czasu serwera
- 10. Problem Windows Authentication z Safari 5.x w Windows 7
- 11. socket.io + Redis + expressjs klaster - pobranie obiektu gniazda w expressjs zażądać
- 12. Nodejs ODBC Connection na Windows
- 13. Wdrażanie nodejs w środowisku Windows
- 14. Bind expressjs do konkretnego adresu IP
- 15. nodeJS-Express lub Meteor lub Derby
- 16. Wykrywanie Web.Config Authentication Mode
- 17. ZF2 Authentication
- 18. Mongo Authentication
- 19. Witryna intranetowa ASP.NET z prośbą o dane uwierzytelniające - Windows Authentication
- 20. Podnieś proces NodeJS/Electron na Windows
- 21. Jak mogę używać Nodejs z Windows 7?
- 22. nodejs npm brak globalnej konfiguracji na windows
- 23. gdzie kodować logikę biznesową w nodejs z expressjs, mongoosejs i redis
- 24. Wiele układów z kierownicą i ExpressJS?
- 25. Yeoman wewnątrz ExpressJS
- 26. Terminate ExpressJS request
- 27. układy w expressjs
- 28. ExpressJS vs MeteorJS
- 29. relaksującego API Authentication
- 30. ColdFusion 10 Active Directory Authentication
Ta celowość okien uwierzytelniania, który jest pojedynczy znak. Twoje rozwiązanie wymaga podania nazwy użytkownika, domeny i hasła. –