问题标签 [passport-saml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - ADFS sso 和使用 passport-saml Express “加密 SAML 响应没有解密密钥”
我在记录 ADFS SSO 时遇到了这个问题。“没有加密 SAML 响应的解密密钥”。从另一个帐户登录正在成功。有人可以帮我解决这个问题。我正在使用 Express 和 passport-saml 工作。
这是我卡住的代码快照。
node_modules/passport-saml/lib/passport-saml/saml.js 为空。在第 623:15 行
node.js - 未调用护照回调
在尝试实施与护照相同的身份验证方法时,我遇到了障碍。传递给函数的回调函数passport.authenticated
不会被调用。
我的快速应用程序在输入此方法时挂起,但仅使用 1 个特定的 saml 提供程序(使用https://samltest.id作为测试提供程序确实可以使用完全相同的代码)。似乎此身份验证方法中发生了错误,但我无法终生找到此错误。
如何在此回调中获取错误。
日志输出:
在护照处理程序错误后调用护照处理程序
{SAMLResponse: 'base64encoded saml response'}
未定义
行
错误:连接 ETIMEDOUT ip:443
node.js - ExpressJS/Passport-SAML Single Log Out 直接重新登录
目前我正在我们的 NodeJS 应用程序中实现护照-saml。这样做的原因是让我们的客户能够连接到他们的 AD FS 系统并利用 SingleSignOn(SSO)。
由于我们还想提供注销功能,因此我正在研究该逻辑。但是,我似乎无法让这个简单的功能发挥作用。我已经用谷歌搜索了很多,尝试了很多变体和配置,但不幸的是,它不起作用。
我想为我们的客户提供由 SP 和 IdP 驱动的 SingleLogOut (SLO) 的可能性。这是我的出发点。在调试和开发过程中,我已经退后一步并试图终止本地会话,但即使这样似乎也是不可能的。
这是我为 SAML 配置的路由中的相关代码:
可以看出,我控制了会话存储处理(设置和销毁会话,但如果这是不明智的,请告知)。实现的会话存储是 MemoryStore ( https://www.npmjs.com/package/memorystore )。
发生的情况是,当用户登录时,一切正常。然后向路由 /logout 发送请求,发生了一些事情,我可以看到会话发生变化,会话 ID 以及护照 saml 的相关参数(nameID,sessionIndex)发生变化,然后用户被重新路由到'/ '。
但是,用户被视为未经过身份验证并重新路由到“/登录”。有人会争辩说它在这里停止,因为必须重新输入凭据。情况并非如此,因为用户直接再次登录,无需重新输入凭据,我不知道如何防止这种情况。
我确实希望有人知道发生了什么:) 如果需要其他信息,我很乐意听到。
javascript - 具有不同配置的相同护照 js 策略 (SAML)
我正在尝试使用 Okta 作为身份提供者和 passport-saml 库在我的 Nest.js 应用程序中创建 SSO。我阅读了 Nest authentication 和 passport-saml 的文档。我对示例的理解没有问题,但是我确实需要使用具有不同配置的 SAML 策略,这取决于 POST 的请求正文值api/auth/saml
。换句话说,我有一个策略,但我的自定义LoginSSOStrategy 类具有不同的入口点、颁发者、证书参数,该类扩展了 Nest.js 的PassportStrategy 类。任何想法我该如何处理?
node.js - 使用passport-saml将浏览器重定向到登录页面
我有一个前端是 ReactJs 而后端是 express 的应用程序。
我正在尝试使用 SAML2 实现 SSO,并且我使用 OKTA 作为 IDP。
我使用 passport-saml 进行身份验证过程。
我的登录和回调函数如下。
在 React 中,如果我以下列方式调用登录 API
当我这样做时,我可以在浏览器网络选项卡中看到对 OKTA 登录页面的 API 调用,但浏览器不会重定向到登录页面。
预期行为
当用户调用此 API 时,如果用户已经登录,用户应该登陆浏览器的主页,或者如果用户尚未登录,浏览器应该被重定向到登录页面。
这样做的正确方法是什么?
node.js - 使用 NestJS 和 Passport 手动启动登录会话
我正在寻找一种以编程方式登录假用户以用于开发目的的方法。最终目标是我打开应用程序进行演示/开发,并且有一个假用户强行登录(这在生产中被关闭)
目前,我有 3 套中间件正在运行:
express-session
- 设置会话和会话存储提供程序- 我编写的一些自定义中间件只是将我的开发用户附加到
req.session.user
passport-saml
中间件检查用户是否通过了身份验证,如果没有,则将其踢给 SSO 提供者。
现在,我可以在 1 和 3 之间添加更多中间件,并看到我的假用户在会话中持续存在(至少在请求期间,无论如何)。但是,显然我没有做passport-saml
中间件期望看到的事情,因为无论我在会话中设置什么,它总是认为我未经身份验证并将我重定向到 SSO 提供程序。
第一层中间件(express-session
)如下所示:
第二层中间件是这样的:
而第三层中间件就是护照中间件。
我确实尝试req.logIn
在步骤 2 中调用,但我收到一条消息说passport.initialize() middleware not in use
。
node.js - 由于回调 url,护照 saml 注销不起作用
我正在使用护照 saml 从 IDP 注销这是我的代码:
这是我的护照 saml 配置:
问题是我试图摆脱上面代码中的第二个 api 调用,因为重定向到 LOGGED_OUT_URL 停止了我的 SLO 进程,所以我更改并部署在 dev env 上,我得到了这个异常:
有线的事情是仍然将我重定向到 logoutCallbackPath url!
passport.js - 在 SP 回调中确定是 IDP 发起还是 SP 发起?
我在我的节点应用程序中使用 passport-saml 身份验证模块。在驻留在我的 SP 中的已注册 IDP 回调函数中,我需要确定回调是由 SP 发起还是由 IDP 发起。
SAML 中的请求 url、标头等是否有我可以在我的 SP 中使用的东西来确定谁启动了流程?
node.js - 收到来自 IDP 的回调后如何在服务器端使用 Meteor 登录用户 [已解决]
我需要使用 passport-saml v2.0 对用户进行身份验证,并在身份验证回调成功响应 IDP 发布请求后登录。
我在前端使用 React,在后端使用流路由器和 Picker。
当我单击一个按钮时,我在客户端启动身份验证,这将创建一个向 /auth/saml 发出请求的窗口。
代码工作,我的用户成功添加到 mongodb,但是现在,在 userHandler 函数返回 userId 和令牌后,我想使用 Meteor.loginWithToken 登录,但是这个函数在服务器端不起作用。
主要问题是在回调函数中使用 IDP 检索到的用户信息,并使用 Meteor 使用该信息登录。
服务器端:使用passport js和passport-saml策略启动认证的代码
客户端:
node.js - NodeJS/ExpressJS/passport-saml ADFS SingleLogout 实现
我不知道下一步该去哪里,所以我将在这里发布我的问题,因为我已经看到了一些关于这个问题的相关问题。不幸的是,提供的解决方案在我的情况下不起作用,我不知道该尝试更多。
所以一些背景知识:我有一个针对 ADFS 系统进行身份验证的 NodeJS/ExpressJS/passport-saml 应用程序。问题的 SSO 部分完美运行,但我似乎无法让 SLO 部分正常工作。
发生的情况是,当我启动 SP 启动或 IdP 启动的注销时,它会挂在第一个 SP 上。第一个 SP 被正确注销,但随后被重定向到第一个 SP 的登录页面并一直等待输入凭据,从而有效地停止了必须发生的重定向链。
到目前为止,我尝试了很多,包括在我的 SLO ADFS 端点/NodeJS 服务器上同时使用 POST 和 HTTP-Redirect 绑定,修改路由等。
当前实现如下: SLO 端点配置(每个 SP 相等,涂黑部分包含 ):
SP服务器上的passport-saml配置如下:
相关路线和功能如下:
如果缺少某些信息,我将能够提供。我真的希望我能得到一些关于下一步要尝试什么的线索!提前致谢 !