问题描述
我正在尝试为不同企业的 google 和 okta 实施 SAML。现在,我有多个入口点。
passport.use(
"saml",new SamlStrategy(
{
protocol: "https://",entryPoint: "entry url",// SSO URL (Step 2)
issuer: "issuer link",// Entity ID (Step 4)
path: "ACS URL parth",// ACS URL path (Step 4)
},async function (profile,done) {
{function body}
}
)
);
现在,如何根据用户每次设置动态发布者 URL?
解决方法
正如您提到的,您希望通过动态入口点或可以说多个。您可以通过在passport-sml中为多个提供者配置策略来实现,有一个名为getSamlOptions的函数在这里您可以编写代码来从数据库中获取动态数据
例如:
passport.use("dynmaic-sml",new MultiSamlStrategy(
{
passReqToCallback: true,// makes req available in callback
getSamlOptions: async function (request,done) {
// get sso config from db and pass
return done(null,config);
}
},function (req,profile,done) {
// logic after response
})
);