问题标签 [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 回答
4156 浏览

node.js - 节点 JS 和 SAML 示例

我想构建示例应用程序,该应用程序将使用我尝试使用的 SAML 进行保护passport-saml

我在网上找到了很多示例程序。但忍不住完成了我的示例程序。

是否有一个示例可以提供分步说明,我可以直接跟进。

我使用 SSOCircle 作为 IDP,它将我重定向到 SSOCircle 的 SSO 登录页面,但登录后它显示错误消息

发生错误原因:无法进行单点登录或联合。

以下是我在节点中的代码。

);

我的 SP 元数据如下

0 投票
0 回答
359 浏览

javascript - 登录passport.js

是否可以记录通过 passport.js 身份验证库发送(和接收)的请求?我想记录生成的请求。

几个不错的选择:

  1. 将记录器对象传递给 passport.js auth 函数,然后由 passport.js 调用
  2. Passport.js 发送事件,您可以收听这些事件,然后根据它们的内容进行记录。
0 投票
1 回答
1611 浏览

node.js - 使用 OneLogin 实现 Node.js SAML

我希望在 OneLogin 的应用程序目录中设置我们的应用程序,因此我需要创建一个 SAML 集成,据我所知。我确实看到他们有可用的工具包,但我正在使用 Node.js 并且没有适用于该环境的工具包。

我一直在阅读他们的文档以及其他帖子,并认为该过程类似于以下内容: 1)向 OneLogin 发出请求以创建应用程序并将其添加到他们的目录中。2)我的应用程序需要有一个路由点,我将提供给 OneLogin,当有人单击我们应用程序的图标时,它将用作重定向。3) 用户在目录中单击我的应用程序的图标将对用户进行标记并将其发送到我定义的路由点,并将信息作为 SAML 请求/XML 传递。4) 我的路由点将需要使用 SAML 请求/XML,然后将执行我的内部登录过程。OneLogin 传递给我的路由点的信息将包括我的站点的必要信息,例如名字、姓氏和电子邮件地址。然后,我将使用该信息执行我的内部应用程序,如果它验证现有用户,我会将其视为成功登录,然后让他们继续。如果他们不是现有用户,我会通过用户创建类型表单发送他们,但可以默认来自 OneLogin 的 SAML 请求/XML 信息,或者可以自动创建用户。

看起来我对这个过程有很高的理解吗?

有人在 Node.js 中有示例吗?

我打算使用 passport-SAML 包。

0 投票
1 回答
2481 浏览

authentication - 当凭据留空时,ADFS 返回“SAML 提供程序返回响应者错误:未指定”

我已经使用 passport-saml 在节点 api 中实现了 ADFS SSO。登录有效,但是当我不放弃任何凭据并提交登录表单时,ADFS 服务器返回以下错误:

“SAML 提供者返回响应者错误:未指定”

当我之后再次尝试登录时,ADFS 直接返回到回调 url,并且再次弹出错误。

在此处输入图像描述

0 投票
2 回答
329 浏览

node.js - 为什么“&SAMLRequest”会附加到我的 ADFS 入口点 URL?

我正在使用adfs IDP 和saml 使用passport-saml 进行sso。

我的切入点如下:

当我给出这个 URL 时,adfs sso 登录页面加载正常,但是当我运行应用程序时,&SAMLRequest会附加这个 URL:

&符号导致页面加载错误,但是当我用任何其他符号替换此符号时,页面加载正常。为什么会这样,我该如何解决?

错误截图

0 投票
0 回答
893 浏览

node.js - 无法解决 passport-saml req.isAuthenticated() 错误问题

我是 saml 新手,使用 Nodejs + Express + passport-saml + okta 身份提供者。我知道这是一个重复的问题,但不知何故我无法通过在互联网上查看很多线程来解决这个问题。

我在项目中使用了 yeoman express 生成器。这是我的设置:

服务器在使用 https 的 ngnix 后面。因此,如果我点击https://mywebsite.com,它会在内部重定向到该服务器上的 localhost:3000 。

express.js

saml-util.js

怎么了:

  1. 我可以点击 URL:/saml/login
  2. 被重定向到 okta 登录页面(我有身份设置)
  3. 我登录成功
  4. 我被重定向到 URL:/saml/callback 并响应:

    /li>

在 /saml/callback URL 中,我可以看到 req.user 中返回的值,但 saml-util 中的 req.isAuthenticated() 始终返回 false。

0 投票
1 回答
8183 浏览

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

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

我已经使用这个博客Auth0创建了我的 IDP 。

初始化护照和定义的saml策略

这是路线

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

issuer1) saml 策略是什么意思

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

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

0 投票
1 回答
322 浏览

javascript - 在 Angular 应用加载之前快速重定向

案例 当我访问我的 url 时https://example.com/,我的 angular 应用程序加载并且 url 将哈希路由添加到https://example.com/#/. 我的 Angular 代码检查来自 saml url 的用户凭据,但没有找到任何东西,因此它调用护照登录,然后将我带到我的 SAML 登录页面(公司托管),该页面再次返回我的主页,并提供正确的用户详细信息。

我的问题是在执行我的app.get (*) catch all 以通过 index.html 页面发送之前,能否防止 Angular应用程序加载并req.user检查我的所有应用程序路由。

客户端路由可以做到这一点吗?下面看一下现在配置的 server.js。任何帮助将不胜感激。

0 投票
1 回答
1044 浏览

xml - 使用护照-SAML express 的 SSO 与 ADFS 的 SAML 错误

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

当我尝试登录时,客户端的 ADFS 服务器日志中出现以下错误:

“联合服务在处理 SAML 身份验证请求时遇到错误”

并在异常详细信息中:

“MSIS0038:SAML 消息的签名错误。颁发者:'myCompany_com'。”

这是我遵循的过程:

1/ 使用护照脚本获取我的数据文件 myCompany.xml 并将其提供给我的客户

2/我的客户将其添加到他的 ADFS中的Add Relying Party Trust中,使用Send LDAP Attributes as Claims模板添加规则,并使用Transform an incoming Claim 选项添加另一个规则并将他的证书发送给我

错误流程: 1/ 用户从 myClient 访问身份验证区域(实际上在使用以下 URL 后重定向到那里: www.myClientSpace.myCompany.com 2/ 输入他的凭据并尝试登录,然后错误出现在 ADFS SERVER LOG 也许我的 XML 文件中缺少某些内容...

感谢您的时间和帮助!!!

PS:这里是我的 XML 文件

0 投票
1 回答
587 浏览

javascript - passport.authenticate 无法与 nodejs 一起正常工作

我基本上是在尝试将登录方法分离到一个单独的文件中(从 app.js 中分离出来)。

这样可以正常工作:

== app.js ==

但是当我将方法分离到另一个文件时,重定向(或者可能是身份验证似乎不起作用)

== 新的 app.js

== 身份验证控制器

任何人都可以帮助我我做错了什么。