问题标签 [sustainsys-saml2]

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 投票
1 回答
2104 浏览

c# - 如何逐步将 Saml 集成到 .Net Core 应用程序中

我担心如何集成SAML。我试图通过文档,但我没有发现任何有用的东西。任何人都可以帮我解决这个问题吗?

0 投票
1 回答
540 浏览

saml-2.0 - 我如何在 ASP.NetCore 2.1 mvc 应用程序中包含 System.Identity Model 4.0

在 ASP.NetCore2.1 MVC 应用程序中实现 saml2.0 的最佳方法是什么?

我正在使用 Sustainsys.AspNetCore2.1Saml2 nuget,下面是代码。但其中的 EntityId 需要 System.IdentityModel.dll 4.0 听起来我无法运行它在错误下方显示的应用程序。

代码

我得到以下错误

在此处输入图像描述

0 投票
1 回答
2282 浏览

oauth-2.0 - IdentityServer4 与 Sustainsys.Saml2 进行 OAuth SAML 断言

我在制作符合 RFC-7522 的样本时遇到问题。我拥有的是IdentityServer4 (v2.2.0)作为 oAuth授权服务器(.NET Core 2.0,控制台应用程序)和不同的 SAML2 IdP。现在我想使用 Saml Assertion 来验证用户。

作为灵感,我使用了这个视频,其中 Brock Allen 和 Dominick Baier 描述了如何设置 SAML2 处理程序。

但可悲的是,我一开始就被困在我只想将该片段粘贴到我的代码中,并且每次我最终都会遇到不同的编译错误(取决于我使用的nuget)。不幸的是,我没有解决它们的运气。

片段:

常见的Nuget:

  • IdentityModel.Unofficial (2.8.1)
  • 身份服务器4 (2.2.0)
  • Microsoft.AspNetCore.All (2.0.3)
  • Microsoft.IdentityModel.Tokens.Saml (5.2.4)
  • Sustainsys.Saml2.AspNetCore2(见下文)

场景 #1:Sustainsys.Saml2.AspNetCore2 (0.24.0)

包“Sustainsys.Saml2.AspNetCore2 0.24.0”是使用“.NetFramework, Version=v4.6.1”恢复的。本期本期提到的内容。最重要的是,我几乎没有编译错误,可能会中断为“类型'EntityId'和'SecurityKeyIdentifierClause'是在未引用的程序集中定义的。”

场景 #2:Sustainsys.Saml2.AspNetCore2 (2.0.0-preview01)

缺少整个 Sustainsys 命名空间,它被 Kentor.AuthServices 替换。未找到参考 .AddSaml2(..)。

0 投票
1 回答
251 浏览

owin - 如何让 md:NameIDFormat 出现在 SAML2 元数据输出中?

我的 SAML2 “工作”(身份验证:成功)但 shibboleth 没有向我发送任何索赔数据,我需要用户电子邮件 :)

陈词滥调的人告诉我将其添加我的 SAML2 元数据中……它显然不存在。

我们正在使用来自https://github.com/Sustainsys/Saml2/的 OWIN 中间件来让这一切正常工作,但它的配置非常好?

TL;博士; md:NameIDFormat 不在 SustainSys SAML2 元数据输出中

0 投票
1 回答
410 浏览

saml - 使用 Identity Server 3 和 SAML 进行重新身份验证

我已经基于此示例使用 SAML 实现了 Identity Server 3:https ://github.com/Sustainsys/Saml2/tree/master/Samples/SampleIdentityServer3

一切正常,但 SAML 身份提供程序(DigiD)需要重新身份验证。这是通过再次发送 SAML AuthnRequest 来完成的。

有谁知道如何从 Identity Server 3 再次发送 SAML AuthnRequest?我尝试使用刷新令牌,但这似乎不会触发另一个 SAML AuthnRequest。

0 投票
1 回答
1444 浏览

owin - 向 Idp-Sustainsys Saml2 发送登录请求

我想为每个未经身份验证的请求向我的 Web 应用程序发送 IdP 登录请求。我正在使用Sustainsys.Saml2.Owin. 我正在使用默认的 StubIdp。

在配置方法中,我添加了一个过滤器,用于检查传入请求是否经过身份验证。如果不是,我会发出 OWIN 挑战。

我的问题是,OWIN 挑战没有将应用程序重定向到 StubIdp 登录页面。我在这里想念什么?

以下是Startup.Auth.cs类的代码

如果我从 cshtml 页面发出请求,例如;

然后它工作。为什么我不能从 OWIN 过滤器发出质询?

0 投票
1 回答
1379 浏览

.net - 提取 Sustainsys SAML 2.0 断言

我的任务是通过 Sustainsys (Kentor) 库为我目前正在进行的项目设置 SAML 2.0 单点登录。是我一直在关注的文档。该网站是一个网络表单应用程序,因此我使用的是Sustainsys 库的HTTPModule部分。我已将 IDP (Okta) 配置为将 SAML 2.0 断言发送到文档宣布端点为/Saml/Saml/Acs的网站。该站点是一个 Kentico CMS 网站,CMS 提供了一个 API,用于使用用户名作为验证用户的参数来验证用户。

我很难弄清楚的部分是,一旦断言通过了 Sustainsys,我如何在我的应用程序中访问该数据,以便我可以查看声明、提取用户名并验证用户身份?该文档描述了如何配置系统,但似乎没有描述如何使用它。

0 投票
1 回答
730 浏览

saml-2.0 - 如何在身份服务器 3 中为 Sustainsys 外部提供商设置 acr 值

Idsvr3在 SQL 中有本地用户帐户。此外,我还使用https://github.com/Sustainsys/Saml2配置了支持 SAML2 的外部身份提供程序,我遵循了此处的示例

现在,当用户访问客户端应用程序时,他会被重定向到登录页面,该页面显示用于本地登录的用户 ID/密码文本框,还有一个用于重定向到外部提供商的按钮。

我想改变这种行为。我希望用户根据某些条件直接转到外部登录。我读过我可以将所需的登录提供程序传递给acr_valuesIdSvr3 将直接转到外部提供程序。

这是我注册外部提供商的方式IdSvr3 (注意,为简洁起见,删除了一些代码)

这是客户端应用程序启动

但是身份服务器抛出错误External login error: provider requested saml2 is not a configured external provider

提供者的有效名称Sustainsys/Saml2是什么,它在哪里配置?

0 投票
1 回答
432 浏览

asp.net-identity - 如何在 SAML2 或 WS-Federation 中请求声明?

我有当前配置为使用IdPOpenID Connect 协议的 ASP.NET MVC 应用程序(带有 OWIN)。在 OpenId Connect 中,我可以使用 Scope 值作为 singin 请求的一部分来请求声明。例如。

作为回报,将IdP这些声明包含在令牌中,应用程序 (SP) 可以访问它们。

IdP现在我想在我的应用程序中再配置两个,一个SAML2用户和另一个用户WS-Federation。对于 SAML2 Idp,我使用的是SustainSys库,对于 WS-Federation,我使用的是Microsoft.Owin.Security.WsFederation库。

我认为scopes仅对 OpenID Connect 协议有效,对于其他 2 个协议,我如何请求我的应用程序需要的这些声明?

0 投票
2 回答
2816 浏览

salesforce - 使用签名中包含的密钥正确验证了签名,但该密钥不受信任

我正在尝试将 SAML2 IdP 配置Salesforce为 IdentityServer3 中的外部提供程序。我正在使用SustainSys/Saml2库。因此,出于测试目的,我下载了SampleIdentityServer3。并配置 SAML2 IdP,如下所示

请注意,如果我没有设置MinIncomingSigningAlgorithm为 sh1,那么 SustainSys 库会引发错误。

Sustainsys.Saml2.Exceptions.InvalidSignatureException:签名算法http://www.w3.org/2000/09/xmldsig#rsa-sha1弱于最低接受 http://www.w3.org/2001/04/ xmldsig-more#rsa-sha256。如果要允许此签名算法,请使用 minIncomingSigningAlgorithm 配置属性。

所以我设置为MinIncomingSigningAlgorithm摆脱"http://www.w3.org/2000/09/xmldsig#rsa-sha1"错误。

但后来我得到不同的错误

Sustainsys.Saml2.Exceptions.InvalidSignatureException:使用签名中包含的密钥正确验证了签名,但该密钥不受信任。

根据问题#493 #735,元数据中的证书必须与 SAML2 响应中的证书匹配。

在元数据中,证书是(注意开始和结束值)

但在 SAML2 响应中(由 SustainSys 库记录的响应)

查看X509Certificate元数据和 SAML2 响应中的值,它们不匹配。

问题SAML2 响应中
的值是否应该与元数据中的值匹配?如果是,为什么 SustainSys 库不能始终使用SAML2 响应中的值?X509CertificateX509CertificateX509Certificate

更新
只是为了看看匹配值是否有效,我将 SAML2 响应中的证书值保存到单独的.cer文件中。然后在 KeyInfoSerializer.cs 文件中我更新ReadX509Certificate了方法(这是从元数据加载证书的方法)

但是,它仍然会引发错误The signature verified correctly with the key contained in the signature, but that key is not trusted.