好了,各位大师,我需要一些帮助/了解这里发生了什么。我正在利用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以允许它也...
在这一点上被卡住了。有什么想法吗?
2条答案
按热度按时间3pvhb19x1#
经过足够的头痛,我找到了一种方法来解决这个问题。正如所怀疑的,它是与IIS,和解决方案,我实现的是一个URL重定向:
我不知道这是否是最可靠的解决方案;所以如果别人偶然发现了这个,随时联系。无论哪种方式,这个都行。
inkz8wg92#
嘿,在那里,我想收到更广泛的解决这个问题请