gpt4 book ai didi

node.js - 使用 NodeJS 通过 Active Directory 进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:51 24 4
gpt4 key购买 nike

我公司正在进行的主要项目是一个 AngularJS Web 应用程序,它为所有数据调用 C#.Net REST API。此应用程序的用户都登录到与 Active Directory 绑定(bind)的 Windows 计算机。这意味着所有身份验证均由操作系统处理,因为所有凭据均由 Web 浏览器自动发送并由 IIS 处理。

我的最新任务是让另一个 NodeJS 应用程序调用 REST 服务并对数据执行一些操作。不幸的是,即使我使用正确的 Active Directory 凭据登录到计算机,也不会随 REST 请求一起发送任何凭据,这会导致 IIS 出现 401.2 错误。确保现有 Active Directory 凭据与 NodeJS REST 请求一起发送的正确方法是什么?

最佳答案

node-sspi 。使用示例:

'use strict';

var express = require('express');
var app = express();
var server = require('http').createServer(app);

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 + '! 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);
});

// Start server
var port = process.env.PORT || 3000;
server.listen(port, function () {
console.log('Express server listening on port %d in %s mode', port, app.get('env'));
});

关于node.js - 使用 NodeJS 通过 Active Directory 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com