应用程序采用单点流在Azure AD中使用npm软件包护照-saml。
在nodejs快速框架中构建的应用程序。
护照saml配置如下所示:
文件名- config.js
passport: {
strategy: 'saml',
saml: {
path: process.env.SAML_PATH ,
entryPoint: process.env.SAML_ENTRY_POINT || 'https://login.microsoftonline.com/tenant/saml2',
issuer: 'app id',
cert: process.env.SAML_CERT,
callbackUrl: "https://application_url/login/callback",
logoutUrl: 'https://login.microsoftonline.com/tenant/saml2',
}
}上面配置入口点中的& logoutUrl是相同的.
快速应用程序的代码片段,使用护照SAML策略连接Azure AD。
文件名- connect.js:
const SamlStrategy = require('passport-saml').Strategy;
const config = require('./config.js');
app.use(passport.initialize())
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((user, done) => {
done(null, user);
});
passport.use(new SamlStrategy(config.passport.saml,
function (req, token, refreshToken, profile, done) {
}
))
/*express app router*/
app.get("/login", (req, res, next) => {
passport.authenticate(config.passport.strategy, { failureRedirect: "/" })(req, res, next);
})
app.post('/login/callback', (req, res, next)=> {
/*processing logic after the successful auth from Azure AD SAML*/
})到目前为止,可以在Azure中执行SAML并接收登录回调。注意:在Azure AD应用程序的重定向URI中正确配置了登录回调。
继续前进,在快速应用程序路由器上执行注销有问题。
LogoutUrl在Azure AD应用程序设置中配置

每当应用程序进入移动路由,它需要注销Azure广告会话。如何才能在此路径中使用passport策略向Azure AD发出注销请求?
代码继续文件名: connect.js
app.get('/movelogout', (req, res, next)=> {
//How to issue logout request ?
})
/*Callback for successful logout in Azure AD*/
app.post('/logout', (req, res, next) => {
//Do post logout operation
})简单地说,我一直在尝试使用passport来实现Azure单点出SAML协议 .具有SAML注销请求的链接,它没有用javascript方式解释SAML请求。
我不太确定logoutUrl之间的关系在配置和前端注销Url在Azure设置。
任何建议或解决方案,以执行Azure AD会话注销手动非常感谢!
发布于 2021-09-07 09:49:25
//如何发出注销请求?
护照在logout()上显示一个req函数,该函数可以从任何需要终止登录会话的路由处理程序中调用。调用logout()还将删除req.user属性并清除登录会话(如果有的话)。您可以尝试在Logout文件中添加以下cmd
app.get('/logout', function(req, res){
req.logout();
res.redirect('/');
});或,
app.get('/logout', function (req, res) {
req.session.destroy();
req.logout();
res.redirect('/');
});配置中的logoutUrl与Azure设置的前端注销Url之间的关系。
基于此DOC女士,在Node.js中注册应用程序时不需要前端通道登录URL。

欲知详情,请参阅以下连结:-
https://stackoverflow.com/questions/69026512
复制相似问题