- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想先说一下,直到现在,我什至没有听说过 SAML,更不用说开发了涉及它的 SSO 策略。再加上我一年来几乎没有做 node 的事实,这让我做了一个很棒的新手三明治。目前,我有一个客户使用 SAML 和 ADFS 作为他们的 SSO 提供商。我已经在使用passport.js 进行本地登录,因此使用passport-saml 似乎是使用SAML/ADFS 实现SSO 的方法。在进行研究时,我找到了几个不同的实现指南,但由于我对这个过程一无所知,我可以使用一些提示。
在passport-saml 文档中,我发现了以下已证明适用于ADFS 的策略(根据文档):
{
entryPoint: 'https://ad.example.net/adfs/ls/',
issuer: 'https://your-app.example.net/login/callback',
callbackUrl: 'https://your-app.example.net/login/callback',
cert: 'MIICizCCAfQCCQCY8tKaMc0BMjANBgkqh ... W==',
identifierFormat: null
}
{
path: '/login/callback',
realm: 'urn:node:app',
homeRealm: '', // optionally specify an identity provider
identityProviderUrl: 'https://auth10-dev.accesscontrol.windows.net/v2/wsfederation',
cert: 'MIIDFjCCAf6gAwIBAgIQDRRprj9lv5 ... ='
}
最佳答案
我最近经历了同样的思考过程:从未听说过 SAML ,我需要启用 Web 应用程序以通过 SAML 进行身份验证,使用 OneLogin 作为身份提供者(而不是 Active Directory)。
在实现过程中,我大量使用了 OneLogin 的文档和 passport-saml
库,我推荐这两个库,尽管我不隶属于其中任何一个。
我逐渐意识到混淆是三方面的:
(1) SAML 的工作原理,
(2) passport-saml
库在 Node 中是如何工作的,以及
(3) 如何配置身份提供者( OneLogin 、 Active Directory 或其他)。接下来是我尝试“像我五岁一样解释”的解释。
SAML
安全断言标记语言 (SAML) 是一种 XML 标准,允许用户根据浏览器 session 进行登录。它有很多功能,但基本上,它可以实现更简单的身份验证过程。用户可以单击按钮而不是提交带有用户名和密码的表单。
SAML 的工作方式有点复杂。我发现 this overview from OneLogin 和随附的图表很有帮助:
该图表示以下过程:
passport-saml
passport-local
之类的东西,或者在我们的例子中是
passport-saml
。
passport-local
策略使用用户名/密码启用 Passport 身份验证,
passport-saml
策略使用浏览器 session 和可配置身份提供程序值启用 Passport 身份验证。
passport-saml
非常适合我的目的,但它的文档很难理解。由于 OpenIdp 身份提供者处于非事件状态并且有许多可配置参数,因此配置示例不起作用。
entryPoint
和
path
(或
callbackURL
)。我只需要这两个,它们执行以下操作:
entryPoint
是使用授权请求重定向到的 URL(参见上面的 #2)。 path
/callbackURL
在 Node 中设置 URL/路由,以便将 SAML 响应发布到(参见上面的 #3)。 ACS (Consumer) URL
和
ACS (Consumer) URL Validator
,两者都应与为passport-saml 配置的
path
/
callbackURL
匹配。
关于node.js - SAML/ADFS node.js 实现指南?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901368/
我是 ADFS 的新手。实际上我不知道什么是主动或被动联邦,也不知道它们之间的区别,有人可以帮助我吗? 提前致谢 !!!... 最佳答案 被动使用浏览器 - 进行重定向等。协议(protocol)是
我有一个引用 ADAL.net 库的 c# 控制台应用程序(Microsoft.IdentityModel.Clients.ActiveDirectory 版本 2.19.208020213) 控制台
ADF initContext 和 prepareModel 之间的区别,因为两者都通过执行业务服务来准备数据,并通过绑定(bind)容器(Map 对象)使其可用。 最佳答案 ADF initCont
我想从按钮 ActionListener 执行数据控制操作(CreateInsert 和 Delete)。我知道可以从 Data Controls 菜单中插入一个数据控制按钮,但是由于各种原因我需要这
我需要将现有管道的副本(管道数量:10-20)从一个订阅克隆到另一个订阅(另一个 ADF)。有没有办法使用 Azure DevOps 来完成此事件? 最佳答案 选项1: 使用Git Configura
在我的解决方案中,我有两个 Azure 数据工厂项目:PR1 和 PR2。 PR1 包含某些资源的定义 - “resource1”。在 PR2 中,我有管道定义,我想在其中引用此资源: "linked
我正在使用 inputFile 组件上传文件。当我完成上传文件时,输入文本字段将缩小 其大小并更改大小以调整文件名。有没有办法为输入文本字段设置固定大小? 部分代码如下: 最佳答案 例如,使用 Pa
我是 ORACLE ADF FUSION MIDDLEWARE 的新手,所以我在表单设计方面没有经验。谁能帮我对齐布局中的一些元素。 我想始终将 ORACLE Logo 对齐到右侧。如果窗口分辨率降低
我的页面上有一个 af:outputText。 它的值需要很长时间才能生成,所以我不想在最初创建页面时生成。 相反,我希望页面在加载后对服务器进行异步回调,然后返回值将填充 outputText。 在
在 oracle adf 中,当我们将一个表从 Data Controls 拖放到 jsf 页面时,当我们运行项目时,预选了一行表。我应该怎么做才能在第一次加载页面时没有选择任何行? 我使用 jdev
我在 Windows Server 2016 上使用 OpenID Connect 设置 ADFS 时遇到困难。 我已经设置了用于测试的 AD 并且我可以成功进行身份验证,但是电子邮件声明不在 id
ADF 管道和 ADF 数据流有什么区别?为什么管道和数据流中支持的接收器/源不同?是否可以创建一个管道来从源读取数据、过滤、使用连接并将数据存储到没有数据流的接收器?请告诉我。 最佳答案 管道用于流
我有一个具有三个值的 selectonechoice:A、B、C,但我在其更改事件中遇到以下错误: Could not find selected item matching value "B"
我有 ADF 应用程序,它是一个电影数据库。我在设置 ADF 组件 af:inputText 时遇到了一个大问题。 我尝试了很多不同组件的不同宽度设置,但我总是失败。 有图片... 请问您不知道该怎么
我试图显示(在控制台中打印)对应于 ADF-BC 的 SQL 查询。我不知道如何使用 Jdeveloper 11.1.1.1.0 和 Oracle 11g 执行此操作。我只是想看看在将它们发送到 Or
我有两台名为 auth.somedomain.no 的 ADFS 2.0 代理服务器和两台名为 adfs.somedomain.no 的 ADFS 2.0 服务器。 然而,https://auth.s
我正在尝试将新的 MVC 应用程序发布到 Azure 应用服务。该应用程序使用ADFS单点登录身份验证,我在ADFS服务器上添加了依赖方信任,并且在本地主机上测试时可以登录。 发布到我的应用程序服务并
有人成功做到这一点吗? SelfSTS是一个 WCF 应用程序而不是 ASP.NET 应用程序,并且似乎没有很多用于进行 WCF 集成的示例或代码示例? 这非常有用,因为 SelfSTS 允许您动态创
我试图将我的 Identityserver4 配置为使用 ADFS 4.0 作为外部提供程序。 我已将其配置如下: app.UseCookieAuthentication(ne
我需要使用“-Djbo.debugoutput=console”启动我的 adf 应用程序。 我该怎么做?我使用的是jdevloper 11.1.1.6 最佳答案 您需要做的就是将上述字符串作为 Ja
我是一名优秀的程序员,十分优秀!