首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用护照- SAML npm包单签出saml?

如何使用护照- SAML npm包单签出saml?
EN

Stack Overflow用户
提问于 2021-09-02 08:13:55
回答 1查看 573关注 0票数 2

应用程序采用单点流在Azure AD中使用npm软件包护照-saml

在nodejs快速框架中构建的应用程序。

护照saml配置如下所示:

文件名- config.js

代码语言:javascript
复制
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:

代码语言:javascript
复制
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

代码语言:javascript
复制
  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会话注销手动非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-09-07 09:49:25

//如何发出注销请求?

护照在logout()上显示一个req函数,该函数可以从任何需要终止登录会话的路由处理程序中调用。调用logout()还将删除req.user属性并清除登录会话(如果有的话)。您可以尝试在Logout文件中添加以下cmd

代码语言:javascript
复制
app.get('/logout', function(req, res){
  req.logout();
  res.redirect('/');
});

或,

代码语言:javascript
复制
app.get('/logout', function (req, res) {
    req.session.destroy();
    req.logout();
    res.redirect('/');
});

配置中的logoutUrl与Azure设置的前端注销Url之间的关系。

基于此DOC女士,在Node.js中注册应用程序时不需要前端通道登录URL。

欲知详情,请参阅以下连结:-

.Microsoft Directory Passport.js插件 .

.注销Azure Passport身份验证节点js \ SO线程 .

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69026512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档