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

问题描述

我正在尝试为不同企业的 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
    })
);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...