Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用nodeJS向Active Directory进行身份验证_Node.js_Rest_Iis_Asp.net Web Api - Fatal编程技术网

Node.js 使用nodeJS向Active Directory进行身份验证

Node.js 使用nodeJS向Active Directory进行身份验证,node.js,rest,iis,asp.net-web-api,Node.js,Rest,Iis,Asp.net Web Api,我的公司正在进行的主要项目是一个AngularJS web应用程序,它为所有数据调用C#.Net REST API。此应用程序的用户都已登录到绑定到Active Directory的Windows计算机。这意味着所有身份验证都由操作系统处理,因为所有凭据都由web浏览器自动发送并由IIS处理 我的最新任务是让一个不同的NodeJS应用程序调用REST服务,并对数据做一些处理。不幸的是,即使我使用正确的Active Directory凭据登录到计算机上,也没有一个证书与REST请求一起发送,这导致

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

我的最新任务是让一个不同的NodeJS应用程序调用REST服务,并对数据做一些处理。不幸的是,即使我使用正确的Active Directory凭据登录到计算机上,也没有一个证书与REST请求一起发送,这导致IIS出现401.2错误。确保已存在的Active Directory凭据与NodeJS REST请求一起发送的正确方法是什么?

有。用法示例:

'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'));
});
“严格使用”;
var express=需要(“express”);
var-app=express();
var server=require('http')。createServer(应用程序);
应用程序使用(功能(请求、恢复、下一步){
var nodeSSPI=require('node-sspi');
var nodeSSPIObj=新nodeSSPI({
retrieveGroups:true
});
nodeSSPIObj.身份验证(请求、恢复、功能(错误){
res.finished | | next();
});
});
应用程序使用(功能(请求、恢复、下一步){
var out='Hello'+req.connection.user+'!您属于以下组:
    ; if(请求连接用户组){ for(请求连接用户组中的变量i){ out+='
  • '+req.connection.userGroups[i]+'

  • \n'; } } out+='
'; res.send(out); }); //启动服务器 var port=process.env.port | 3000; 侦听(端口、函数(){ console.log('Express server在%s模式下侦听端口%d',端口,app.get('env'); });