问题标签 [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.

0 投票
3 回答
5003 浏览

single-sign-on - 带有 ADFS 的 SSO 的 SAML 错误 - MSIS0038:SAML 消息的签名错误

您好我正在尝试使用 SSO 将我的客户的用户直接验证到我的网站。我的客户的 IDP 是 Microsoft ADFS,我正在使用 Passport-SAML ( https://github.com/bergie/passport-saml ) 来配置 SSO 流程。

在访问我给我的客户的特殊 URL(例如: www.myClient.myCompany.com )后,用户(未经身份验证)按预期重定向到客户登录页面。在他输入凭据后,他仍然停留在登录页面SSO 工作,因为用户已通过身份验证,这意味着如果他打开一个新选项卡并转到 www.myClient.myCompany.com,他将被重定向到我的网站。

这里是 ADFS 服务器日志中的错误:

MSIS0038 错误 - 事件 ID 303

感谢您的时间!

0 投票
1 回答
1962 浏览

node.js - 如何使用 passport-saml 向 TestShib IdP 提供 SP 元数据?

我有一个node.js脚本,使用passport-saml来模拟 SP。我的目标是将它连接到这个TestShib IdP但我收到以下错误:SAML 2 SSO profile is not configured for trusting party

根据我在这里阅读的内容,我知道我需要提供 SP 元数据,但我不知道如何提供。我知道passport-saml 有这个功能:generateServiceProviderMetadata(decryptionCert)虽然我有所需的证书,但我不知道如何让它全部工作。

另外,如果可能的话,我想避免注册我的 SP。

这是我的脚本:

提前感谢您的帮助和指导!

0 投票
1 回答
1173 浏览

javascript - passport-saml 和访问 SAML 值

我的 passport-saml 工作正常,但我无法访问从声明规则返回的 ADFS 属性,例如 firstName 属性。

当在 Web 浏览器中点击 /login 端点时,以下代码会在 console.log 中显示以下内容:

GET [/] 用户已通过身份验证!请求用户:{}

关于以下为什么不起作用的任何想法,似​​乎 req 对象没有被填充?

更新: 问题似乎在于未填充配置文件详细信息,如果我设置了一个静态值,它可以正常工作:

GET [/] 用户已通过身份验证!req.user: {"firstName":"test_user"}

0 投票
0 回答
349 浏览

wso2is - WSO2IS passport-saml SLO,从编码字符串构造 AuthRequest 时出错

我目前正在使用 WSO2-IS 5.4.1 和 passport-saml 来实现 SSO 和 SLO。虽然单点登录正常工作,但我似乎无法正确配置完整的单点注销。

老实说,我对一些事情感到困惑

  1. 为什么 WSO2IS 向发起注销的 SP 发送注销请求?此操作未在 SAML 请求中捕获,但在如下所示的 IdP 终端错误中说明。
  2. samlStrategy.logout 是否也执行本地注销或仅构建请求并重定向到 WSO2IS,当我记录请求时似乎是后者?我之所以问,是因为我查看过的所有示例代码都在注销回调中包含 req.logout() ,但是在 /wso2app/logout/callback 帖子中的 req.logout() 之前,我将 req.isAuthenticated() 设为 false。

该应用程序正确重定向到 WSO2IS saml url,并且 WSO2IS 回传到我的应用程序配置中的回调。WSO2IS 也成功将用户注销,但似乎将不必要的 SLO 请求发送回节点应用程序。有关 IdP 中的节点 SP 配置,请参见下面的图片链接。

WSO2IS 中的节点应用程序配置

使用 saml DEBUG 在 IdP 终端中生成的主要错误:

[2018-05-01 10:44:47,135] DEBUG {org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet} - Query string : slo=true&SAMLRequest=nVFLS8QwEP4rJfdtm272NbRdF4pQWD2oePAioc26hTRTM1P15xu7KyyCHoS5ZOZ7ZSbffvQ2ejOeOnSFkHEqtmVOurcD7PEFR74zr6MhjgLOEUyTQozeAWrqCJzuDQE3cL%2B72UMWpzB4ZGzQigvK3wxNZDyHACKqq0I8b5aLTaN0dlCtXmmZzlu1FtHjd8hACUCi0dSOWDsOrVSuZ%2BlilsoHqUCFWsUyWz6JqArZO6d5Yh6ZB4Iksdhoe0Ri2Cg1T74SEuGWLBbsRyNOG4DJw%2F%2FjG%2BU7YaaHIU8udM6it4FXV9E1% 2Bl7z74IyllOna2eHCQqm153dta03RKIcg5e86sICZNxgf3Y6iZen148Llp8%3D [2018-05-01 10:44:47,140] 调试 {org.wso2.carbon.identity.sso.saml.builders.SignKeyDataHolder} - 使用系统密钥存储初始化超级租户的密钥数据01018-052 10:44:47,163] 调试 {org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet} - 查询字符串:slo=true&SAMLRequest=nVFLS8QwEP4rJfdtm272NbRdF4pQWD2oePAioc26hTRTM1P15xu7KyyCHoS5ZOZ7ZSbffvQ2ejOeOnSFkHEqtmVOurcD7PEFR74zr6MhjgLOEUyTQozeAWrqCJzuDQE3cL%2B72UMWpzB4ZGzQigvK3wxNZDyHACKqq0I8b5aLTaN0dlCtXmmZzlu1FtHjd8hACUCi0dSOWDsOrVSuZ%2BlilsoHqUCFWsUyWz6JqArZO6d5Yh6ZB4Iksdhoe0Ri2Cg1T74SEuGWLBbsRyNOG4DJw%2F%2FjG%2BU7YaaHIU8udM6it4FXV9E1%2Bl7z74IyllOna2eHCQqm153dta03RKIcg5e86sICZNxgf3Y6iZen148Llp8%3D [2018-05-01 10:44:47,169] DEBUG {org.wso2.carbon.identity.sso.saml.logout.LogoutRequestSender} - A logoutReqSenderTask分配给线程池 [2018-05-01 10:44:47,169] DEBUG {org.wso2.carbon.identity.sso.saml.session.SSOSessionPersistenceManager} - 从会话 ID 中检索到会话索引,会话索引为 6ffb8168-3022- 4d77-9ecc-3bc168d6c5da [2018-05-01 10:44:47,345] 调试 {org.wso2.carbon.identity.sso.saml.logout。LogoutRequestSender} - 单个注销请求发送到: http://localhost:3000/wso2app/logout/callback返回时已临时移动 [2018-05-01 10:44:47,348] DEBUG {org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil} - 请求消息��u������)ඈm�� ����,�}4��.qǬ��Z�� [致命错误] :1:1: prolog 中不允许内容。[2018-05-01 10:44:47,368] 错误 {org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil} - 从编码的字符串 org.xml.sax.SAXParseException 构造 AuthRequest 时出错:内容不是在序言中允许。在 org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 在 org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 在 javax.xml.parsers.DocumentBuilder.parse(Unknown Source) 在 org.wso2 .carbon.identity.sso.saml.util.SAMLSSOUtil.unmarshall(SAMLSSOUtil.java:298) 在 org.wso2.carbon.identity.sso.saml.logout.LogoutRequestSender$LogoutReqSenderTask。 http://localhost:3000/wso2app/logout/callback 在 java.lang.Thread.run(Thread.java:748) 处运行(ThreadPoolExecutor.java:624) 原因:org.xml.sax.SAXParseException:prolog 中不允许内容。在 org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 在 org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 在 javax.xml.parsers.DocumentBuilder.parse(Unknown Source) 在 org.wso2 .carbon.identity.sso.saml.util.SAMLSSOUtil.unmarshall(SAMLSSOUtil.java:298) ... 还有 7 个

节点应用。注意 user1 被 IdP 认证后会立即重定向到 /wso2app/logout,这只是为了测试。

SLO 请求注意:这是节点应用程序向 IdP 发送的正确 SLO 请求,由 SAML 浏览器工具捕获。从 IdP 发送回应用程序的神秘 slo 请求仅记录在 IdP 终端错误中。

我查看了多个帖子,但找不到与我的问题相关的帖子。发送到http://localhost:3000/wso2app/logout/callback的注销请求的神秘性质令人担忧,但我还是不明白为什么要发送它。这似乎不遵循此处描述的官方 SLO 流程我读到“[致命错误]:1:1:序言中不允许内容。” 与过多的空白字符有关,我不确定如何或为什么会生成此请求?任何帮助深表感谢。

0 投票
0 回答
57 浏览

passport.js - ADFS 证书翻转后无法登录

我们的一位客户在adfs实施时进行了认证翻转。之后,他们不再能够登录。

我们面临的主要问题是,在这次翻转之前,我们从未在 saml 身份验证中使用过证书。

我们已经设置expressjs并且passport passport-saml我们从不使用任何cert它。它以前可以工作,但现在它停止了。

我搜索并发现在我们结束时我们需要更新federationmetadata从他们的 adfs 收到的证书。

问题:

它可能停止工作的任何可能原因?如果我们现在需要更新证书,以前没有证书是如何工作的?

0 投票
1 回答
1990 浏览

angular - Angular 4:使用 SAML 和令牌交换进行身份验证

我正在设置 Angular 4 + NodeJS(用于 SAML-PASSPORT)+ Spring Boot(所有 API)应用程序。

这是身份验证和授权流程: 1. 在 UI 中,用户单击登录 2. 请求发送到 SAML IDP 以进行登录 3. 用户验证自己 4. SAML IDP POST 回我的 NodeJS API 端点 /login/callback 5. NodeJS 将用户重定向到前端 - 此时我想生成一个令牌并将其发送到 UI 端。我无法通过 URL 发送

您将如何解决在 SAML 身份验证后从 NodeJS 向前端发送用户详细信息/令牌的问题

在 Angular 4 中,是否有类似 Servlet 的概念,我点击了一条路线,但路线是在幕后捕获的,它向用户显示了 Token 或 URL 中的详细信息。

我不想这样做:http:///landing/token=5384742894

我觉得这是一个已经解决的问题,我只是不确定什么是正确的方法。

0 投票
0 回答
677 浏览

node.js - SAML SSO 与 Node 和 Angular 2+

我正在使用的系统是用 PHP 制作的,我被要求将其升级到基于 Node 和 Angular 的系统。

凭据使用 SSO 与 ADFS 服务一起处理 SAML。

由于在使用 Angular2+ 和 NodeJs 时,这些东西适用于会话,因此我尝试使用 passport-saml 并且似乎使 Node 部分工作,但在添加 Angular HTTP 调用时它不会进行身份验证。

此外,如何从 ADFS 获取组和信息?

0 投票
1 回答
935 浏览

node.js - 如何在节点(快递)作为后端和 vue 作为客户端的情况下使用护照 SAML

我有一个带有节点(快速)后端和 vue 客户端的应用程序。我正在尝试使用护照添加 SAML SSO。(在服务器节点应用程序上执行此操作很有意义)。

在快递应用程序中使用时效果很好。但是当我将它应用于快速后端和 vue 客户端的结构时 - 它无法重定向到 Idp。

当用户进入我的登录页面时,vue 客户端(Login.vue)调用节点后端来验证用户。(api 验证用户)

节点调用 passport.authenticate('saml', ...) 并且我希望可以将响应发送回调用我的 vue 函数,然后在 Login.vue 中进行重定向。

但是问题来了:在后端节点应用程序中,重定向响应是在我的代码执行后发送的,在护照策略中。所以它会自动发送到浏览器,而不是返回到调用这个节点 api 的 vue 脚本。

所以重定向是在后台完成的,用户看不到任何重定向。仍然显示原始登录页面。并且我的 vue 函数从 API 获取响应 - 只有在浏览器将重定向(在后台)发送到 IDP 并从 IDP 获取登录 html 页面响应之后。所以我得到的数据 - 是 IDP 登录页面的 html,而不是重定向数据。

我该如何解决?

我是客户端技术和 js 和节点的新手,所以我真的不知道应该如何处理这样的流程。寻找3天的解决方案。

非常感谢您的帮助!

这是我的代码片段:

登录.vue:

后端节点快递应用:

验证用户.js:

0 投票
1 回答
3240 浏览

node.js - Passport Saml-> SAML 提供程序在身份验证后返回错误

我正在尝试使用 passport-saml 进行身份验证,但在通过错误获得授权后Error: SAML provider returned Requester error: An error occurred.

当我点击登录时,它会将我重定向到我提供用户名和密码的 IDP 登录页面,然后它重定向到我的 /login/callback 函数,它会崩溃。

应用程序.js

路由.js

护照.js

配置.js

这是我在控制台和浏览器上遇到的错误

这是我得到的回应

0 投票
1 回答
125 浏览

node.js - 如何在 ADFS(作为 IDP)metadata.xml 中包含配置的声明或提前知道它们(在返回配置文件对象之前)?

我将 Saml SSO 与 ADFS(作为 IDP)一起使用,在 ADFS UI 中,我为我的 SP(第三方)应用程序配置了所有需要的数据,包括角色(声明)。现在在 ADFS 中有一个选项可以将联合元数据 xml 的链接与我配置的所有数据一起复制。我的问题是:在 ADFS 给我的这个元数据 xml 链接中,我找不到我定义的角色(声明)(我可以在成功身份验证后返回的配置文件响应对象中看到它们,但在元数据 xml 中没有)。我的问题是: 1. ADFS 元数据 xml 是否应该包含我的声明?2. 如果是,你能解释一下,我该如何包括它们?3. 否则,您能否建议一种方法让我知道哪些声明(键)将在前面的配置文件对象中返回?谢谢。