我正在开发一个应用程序,使用angular构建前端,使用node JS构建后端。对于身份验证,因为我们必须使用windows身份验证,所以我选择了Node-sspi,因为它实现起来很简单,并且发现它很有效。下面我将发布一个简单的代码,类似于我正在使用的代码。
var http = require('http');
var port = process.env.PORT || 8080;
var express = require('express');
var app = express();
app.use(function (req, res, next) {
var nodeSSPI = require('node-sspi')
var nodeSSPIObj = new nodeSSPI({
retrieveGroups: true
})
nodeSSPIObj.authenticate(req, res, function(err){
res.finished || next()
})
})
app.use(function(req, res, next) {
var out =
'Hello ' +
req.connection.user +
'! Your sid is ' +
req.connection.userSid +
' and you belong to following groups:<br/><ul>'
if (req.connection.userGroups) {
for (var i in req.connection.userGroups) {
out += '<li>' + req.connection.userGroups[i] + '</li><br/>\n'
}
}
out += '</ul>'
res.send(out)
})
app.listen(port, function(){
console.log('server is listening on port '+port);
})
console.log('Your application is listening on port '+port);当我在本地浏览时,我可以进行身份验证部分,并可以看到登录页面。问题是,当我在azure或IIS上部署它时,它一直在要求我进行身份验证。
请告诉我如何在IIS和Azure上使用node-sspi实现windows身份验证。
发布于 2019-11-18 14:52:08
据我所知,在Azure web应用程序中不可能使用windows身份验证。应用服务PaaS VM实例无法加入域。这就是为什么你总是要求你登录的原因。
Azure Active Directory是最佳选择。从AD同步到Azure Active Directory也非常容易设置。
如果你仍然想绝对使用Windows身份验证并在Azure上托管你的网站,你可以创建Windows VM并在那里托管你的网站。然后,您需要将VM加入您的AD。为此,两个虚拟机必须位于同一网络中。
发布于 2021-02-17 16:20:51
请将站点添加到受信任的站点

https://stackoverflow.com/questions/58890213
复制相似问题