NodeJS 护照-SAML:已覆盖entryPoint / auth请求标头

dzhpxtsq  于 2023-01-16  发布在  Node.js
关注(0)|答案(2)|浏览(118)

好了,各位大师,我需要一些帮助/了解这里发生了什么。我正在利用passport和passport-saml为我的应用程序进行单点登录。我已经能够在我的开发机器上本地工作,但是当我部署到我们的临时服务器时,出现了一些问题,没有利用我配置的entryPoint URL ......
示例代码:

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请求:

https://my.idp.com/affwebservices/public/saml2sso?SAMLRequest=.....

但是,部署后,entryPoint URL域将被临时域覆盖:

https://my.domain.com/affwebservices/public/saml2sso?SAMLRequest=.....

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

我要说的是,开发服务器和staging/prod服务器之间的唯一区别是,staging/prod使用IIS作为反向代理,根据URL字符串路由传入的通信(即my.domain.com/production、my.domain.com/staging)。我已经在节点服务器上启用了CORS,这就是我最初让它在开发服务器上工作的方法,以及尝试配置IIS以允许它也...
在这一点上被卡住了。有什么想法吗?

3pvhb19x

3pvhb19x1#

经过足够的头痛,我找到了一种方法来解决这个问题。正如所怀疑的,它是与IIS,和解决方案,我实现的是一个URL重定向:

我不知道这是否是最可靠的解决方案;所以如果别人偶然发现了这个,随时联系。无论哪种方式,这个都行。

inkz8wg9

inkz8wg92#

嘿,在那里,我想收到更广泛的解决这个问题请

相关问题