护照-saml请求中缺少“目的地”属性

时间:2018-09-27 14:49:24

标签: node.js single-sign-on passport.js saml

我正在向IDP发送一个saml请求,并且在此过程中收到以下错误消息:

未处理请求GET / ssoauth的错误:错误:缺少元素samlp的属性目标的属性值:AuthnRequest

/ ssoauth是我的服务器上客户端用来发起请求的路径。

这是我的password.js文件:


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

    var samlOptions = {
       entryPoint: config.entryPoint,
       issuer: config.callbackUrl,
       callbackUrl: config.callbackUrl,
       cert: config.cert,
       identifierFormat: null
    };

    passport.serializeUser(function(user, done) {
       done(null, user.id);
    });

    passport.deserializeUser(function(id, done) {
       done(err, user);
    });

    passport.use(new SamlStrategy(
       samlOptions,
       function(profile, done) {
          findByEmail(profile.email, function(err, user) {
             if (err) {
                return done(err);
              }
          return done(null, user);
          });
        }
    ));

    module.exports = passport;

Samlconfig.js:


    var entryPoint = 'https://sso.jumpcloud.com/saml2/myapp';
    var issuer = 'passport-saml';
    var callbackUrl = 'https://localhost:5000/login/callback';
    var identifierFormat = 'identifierFormat: null';
    var cert = '......';

1 个答案:

答案 0 :(得分:0)

就我而言,我不小心在entryPoint属性名称中输入了错字。

此错误仅表示SamlConfig.entryPoint没有值。