如何使用动态护照SAML策略?

How to use dynamic passport SAML stratagey?

我正在尝试为 google 实施 SAML 并为不同的企业实施 okta。现在,我有多个入口点。

 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?

正如您提到的,您希望通过动态入口点或可以说多个。您可以通过 Configure strategy for multiple providers in 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
    })
);