首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passport-SAML: entryPoint / auth请求头被覆盖

Passport-SAML: entryPoint / auth请求头被覆盖
EN

Stack Overflow用户
提问于 2021-07-08 22:55:30
回答 1查看 39关注 0票数 0

好了,大师们,我需要一些帮助/理解这里发生的事情。我正在利用passport和passport-saml为我的应用程序进行单点登录。我已经能够在我的开发机器上本地工作,但是当我部署到我们的临时服务器时,有些地方出了问题,并且没有利用我配置的entryPoint URL……

示例代码:

代码语言:javascript
复制
return new Strategy(
    {
        callbackUrl: "https://my.domain.com/staging/api/login/callback",
        entryPoint: "https://my.idp.com/affwebservices/public/saml2sso",
        issuer: "my.domain.com",
        cert: "THE SECRET SAUCE"
    },
    function(profile, done) {
        // .....
    }
)

// ROUTES ----------------------------------------------------------------------

app.get('/api/login', passport.authenticate("saml", { successRedirect: '/', failureRedirect: '/login' }) );

app.post('/api/login/callback', passport.authenticate("saml", { failureRedirect: '/', failureFlash: true }), (request, response) => {
    // .....
});

如上所述,当我在本地运行它时,它可以工作,并且我看到发出了以下SAML请求:

代码语言:javascript
复制
https://my.idp.com/affwebservices/public/saml2sso?SAMLRequest=.....

但是,部署后,entryPoint URL域将被分段域覆盖:

代码语言:javascript
复制
https://my.domain.com/affwebservices/public/saml2sso?SAMLRequest=.....

我注意到生成的请求是对my.domain.com的授权,而不是使用my.idp.com:

我要说的是,开发服务器和暂存/生产服务器之间的唯一区别是,暂存/生产服务器利用IIS作为反向代理,根据URL字符串(即my.domain.com/production、my.domain.com/staging)来路由传入流量。我已经在节点服务器上启用了CORS,这就是我首先让它在开发服务器上工作的方式,并尝试配置IIS以允许它……

在这一点上被难住了。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-07-09 02:03:28

经过足够的努力,我找到了一个解决问题的方法。正如怀疑的那样,它是与IIS一起使用的,而我实现的解决方案是URL重定向:

我不知道这是否是最健壮的解决方案;因此,如果其他人偶然发现了这一点,请随时联系。无论哪种方式,这都是可行的。

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

https://stackoverflow.com/questions/68304042

复制
相关文章

相似问题

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