gpt4 book ai didi

node.js - nodejs中的passport-saml策略实现

转载 作者:行者123 更新时间:2023-12-03 12:11:31 25 4
gpt4 key购买 nike

我正在使用 passport-saml用于身份验证。为此,我已安装

npm install passport passport-saml --save

我使用这个博客创建了我的 IDP Auth0 .

初始化通行证和定义的 saml 策略
app.use(passport.initialize());

passport.use(new passportSaml.Strategy(
{
path: "/login/callback",
entryPoint: "https://qpp1.auth0.com/samlp/bZVOM5KQmhyir5xEYhLHGRAQglks2AIp",
issuer: "passport-saml",
// Identity Provider's public key
cert: fs.readFileSync("./src/cert/idp_cert.pem", "utf8"),
},
(profile, done) => {
console.log("Profile : ",profile);
let user = new Profile({ id: profile["nameID"], userName: profile["http://schemas.auth0.com/nickname"] });
return done(null, user);
}
));

这是路线
app.get("/login",
passport.authenticate("saml", (err, profile) => {
// control will not come here ????
console.log("Profile : ", profile);
})
);
app.post("/login/callback",
(req, res, next) => {
passport.authenticate("saml", { session: false }, (err, user) => {
req.user = user;
next();
})(req, res, next);
},
RouteHandler.sendResponse
);

现在这工作正常,但我有一些问题

1)什么是 issuer saml 策略中的平均值

2) 为什么我需要使用 passport.authenticate在两个 URL 映射中。我不明白为什么在 /login/callback 中需要它要求。甚至控制都不会来 /login我传入的请求函数 passport.authenticate方法?

这背后的逻辑是什么?这在任何情况下都有用吗?

最佳答案

我们刚刚完成了一个 Multi-Tenancy 的 Passport -saml 实现。通过我们的研究、测试和开发周期,我们发现了以下内容:

  • “发行人”似乎映射到 SAML 中的实体 ID
    请求/响应断言。
  • GET/login 上的身份验证为您提供 SP 启动的流程
    能力。 AuthNRequest 将被发送到 IdP。用户将
    进行身份验证(或已通过身份验证),然后 IdP 将
    对断言消费者服务端点进行回调。在
    您的案例 POST/login/callback 进行身份验证。邮报
    /login/callback 端点是 IdP 启动的 SAML 流。

  • 为了了解如何与我们的应用程序集成,我们从 IdP 启动的流与 ACS 回调开始。我们整合的第一个客户是成功的。然而,他们问的第一个问题是,我们应该为 SP 启动的流使用什么 URL? :-) 我很快就能让 SP 启动的流程工作起来。

    我已经使用 Salesforce 开发人员和 SSO Circle 作为测试 IdP 对此进行了测试。

    希望这可以帮助。

    关于node.js - nodejs中的passport-saml策略实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47711518/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com