Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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 蓝色广告_Node.js_Azure_Azure Active Directory_Saml - Fatal编程技术网

Node.js 蓝色广告

Node.js 蓝色广告,node.js,azure,azure-active-directory,saml,Node.js,Azure,Azure Active Directory,Saml,我正在尝试使用nodeJS在azure广告中设置SSO(SAML)。我从与我合作的公司得到了一些信息。他们基本上希望在那里的内部站点上托管我的站点,并让它使用there db对那里的用户进行身份验证。我得到了一些信息(租户ID、用户访问URL、应用程序ID和对象ID以及元数据文件),但在网上找不到任何有用的信息,这是我第一次尝试这样做。如果有人能帮忙,请告诉我!提前谢谢!我的代码如下:) 文件是关键—— 此外,这还取决于站点的托管位置,如果它是n Azure应用程序服务,则很容易实现SSO(或)

我正在尝试使用nodeJS在azure广告中设置SSO(SAML)。我从与我合作的公司得到了一些信息。他们基本上希望在那里的内部站点上托管我的站点,并让它使用there db对那里的用户进行身份验证。我得到了一些信息(租户ID、用户访问URL、应用程序ID和对象ID以及元数据文件),但在网上找不到任何有用的信息,这是我第一次尝试这样做。如果有人能帮忙,请告诉我!提前谢谢!我的代码如下:)


文件是关键——

此外,这还取决于站点的托管位置,如果它是n Azure应用程序服务,则很容易实现SSO(或),如果它是其他IIS服务器[on Prem],则需要进行一些配置更改/应用程序代码更改

var SamlStrategy = require('passport-saml').Strategy;

passport.use(new SamlStrategy(
  {
    path: '/login/callback',
    entryPoint: 'https://myapps.microsoft.com/signin/SAML-companyname-DEV/id?tenantId=id
    issuer: 'issuer'
  },
  

  function(profile, done) {
    findByEmail(profile.email, function(err, user) {
      if (err) {
        return done(err);
      }
      return done(null, user);
      
    });
  })
);

app.post('/login/callback',
  function(req, res) {
    console.log('inside /login/callback')
    //after login, goes here, but renders back to login/callback. then back here.
   res.render('login.ejs')
  }
);

app.get('/login',
  passport.authenticate('saml', { failureRedirect: '/failed-login.ejs', failureFlash: true }),
  function(req, res) {
      console.log("inside azuread /login passport saml")
     res.render('index.ejs')
  }
);


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(session(
  {
    resave: true,
    saveUninitialized: true,
    secret: 'test secret'
  }));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static(path.join(__dirname, 'views')));


// 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
    res.send(err.status)
});