Ale*_*lex 4 node.js saml-2.0 passport.js
我已经将Passport-SAML实施到我的网站中,现在我的任务是将我们的网站与另外两个身份提供商连接起来.在我的代码中,它似乎只使用SamlStrategy的最新定义.如何设置Passport以允许同一策略的多个不同实现?
我的实现看起来像这样:
passport.use(new SamlStrategy(
{
path: '/saml',
entryPoint: "https://idp.identityprovider.net/idp/profile/SAML2/Redirect/SSO",
issuer: 'https://www.serviceprovider.com/saml',
identifierFormat: 'urn:domain:safemls:nameid-format:loginid'
},
function(profile, done) {
console.log("SamlStrategy done", profile)
User.findOne({email:profile.Email}, function(err, user) {
if (err) {
return done(err);
}
if(!user) return done(null, false, {message: 'No account associated with this email.'})
return done(null, user);
});
}
));
Run Code Online (Sandbox Code Playgroud)
您可以为每个策略命名
passport.use('config1', new SamlStrategy(..), callback);
passport.use('config2', new SamlStrategy(..), callback);
Run Code Online (Sandbox Code Playgroud)
然后
app.post('/login/callback',
function(req, res) {
var config = // extract config name somehow
passport.authenticate(config, { failureRedirect: '/', failureFlash: true })();
}
function(req, res) {
res.redirect('/');
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4222 次 |
| 最近记录: |