1

我正在尝试为不同的企业实现 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 动态?

4

1 回答 1

2

正如您提到的,您希望通过动态入口点或可以说多个。您可以通过在 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
    })
);
于 2021-04-21T05:40:59.120 回答