Я хотел был бы аутентифицировать пользователя Windows в NodeJS
приложении. Есть ли дополнения для этого еще? Существует node-krb5
, но он пока не поддерживает окна.Nodejs или ExpressJS Аутентификация Windows
ответ
Я добавил запись в блоге для этого здесь http://hadenoughpi.wordpress.com/2013/04/16/node-js-windows-authentication-using-edgejs/ Надеюсь, это один из правильных способов.
Если вы размещаете на IIS с iisnode https://github.com/auth0/passport-windowsauth, то работает красиво! паспорт windowsauth поставляется с интеграцией объявлений, но если вы хотите только имя пользователя для того, чтобы реализовать свою собственную логику authorzation вы можете сделать это, как этот
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();
});
, то вы можете получить доступ к идентификатор пользователя объекта запроса в других ваших маршрутов:
app.get("/api/testAuthentication", function(request, response){
console.log(request.user.id + " is authenticated");
});
если вы хотите реализовать свою собственную логику авторизации с помощью идентификатора пользователя вы можете определить функцию промежуточного программного обеспечения, как это:
app.get("/api/testAuthorization", hasRole("a role"), function(request, response, next){
console.log(request.user.id " is authenticated and authorized");
});
где hasRole выглядит следующим образом:
function hasRole(role) {
return function(request,response,next){
//your own authorzation logic
if(role == "a role")
next();
else
response.status(403).send();
}
}
Но когда мы устанавливаем узел за IIS, мы теряем много преимуществ в Ноде! – DaNeSh
Я могу получить ответ '(request.user.id)' из Url в браузере. но когда я пытаюсь получить доступ к одному и тому же URL-адресу, я получаю ошибку Несанкционированная ошибка. Я знаю, что этот пост старый, но если возможно, можете ли вы поделиться любым примером, где вы использовали такие вещи? –
node-sspi
: нашел, что это легко и эффективно использовать.
- 1. ExpressJs + Passport.js + MySQL Аутентификация
- 2. Аутентификация Token Autodesk ExpressJS
- 3. Аутентификация в приложении expressJS
- 4. CKEditor и ExpressJS - NodeJS
- 5. ExpressJs (NodeJs) Fire & Forget
- 6. Nodejs Expressjs app.get interval
- 7. nodejs ExpressJs BackboneJs PushState
- 8. ExpressJS/NodeJS Redirect Image
- 9. Nodejs Expressjs URI-символы
- 10. AngularJS, NodeJs и ExpressJS
- 11. NodeJS Домены и expressjs
- 12. API Expose (NodeJS/ExpressJS)
- 13. nodejs expressjs angularjs routing
- 14. Аутентификация NodeJs ????
- 15. Nodejs Clustering and expressjs sessions
- 16. Файловая маршрутизация в NodeJS/ExpressJS
- 17. NodeJS/ExpressJS Множественные среды simulatenously
- 18. Использование RedisStore в nodejs/expressjs
- 19. NodeJS ExpressJS PassportJS - только для административных страниц
- 20. nodejs/expressjs redirect не работает
- 21. Перемещение файла в ExpressJS/NodeJS
- 22. Ошибка обработки ошибок NodeJs ExpressJS
- 23. Как modularize nodejs + expressjs код
- 24. Развертывание nodejs приложения с ExpressJS
- 25. NodeJS и ExpressJS Router.use() ошибка
- 26. Подписи подкаталога expressjs 3x/nodejs
- 27. Вложенный запрос GET Nodejs Expressjs
- 28. Url path в ExpressJS + NodeJS
- 29. Nodejs - Expressjs - Проверка shopify webhook
- 30. код описание nodejs expressjs mongoose
Это побеждает цель окна AUTH которая единый вход. Ваше решение требует передачи имени пользователя, домена и пароля. –