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

c# - 添加多个租户

将多客户端添加到配置中的首选方式是什么?我们有一些客户希望继续使用 ADFS,因此他们有不同的端点/元数据。

目前我试图在启动时从数据库中读取配置,然后为每个人注册一个新的 Saml12 身份验证。

当我在配置中添加了 2 个不同的客户端时,一个可以正常工作,但另一个返回一个unhanded exception has occurred: No Idp with entity id http://xxxxx not found错误

当您设置 SPOptions.EntityId 时,我仍然有点模糊,这应该是我的端点(我假设它是)还是客户。

此外,在创建 AddSaml2 时,该方案指的是什么,我在任何文档中都看不到这一点?

谢谢

0 投票
1 回答
303 浏览

owin - 使用 Okta 进行身份验证时,GetExternalLoginInfoAsync 始终返回 null

我目前正在尝试让 Okta 使用我们基于 MVC 的应用程序。不幸的是,我不是原始代码的原始设计者或作者。然而,经过一番挖掘,我发现我的前辈工作是基于 Sustainsys 示例应用程序“SampleOwinApplication”,这似乎提供了我们需要的功能。所以我的查询基于可以从https://github.com/Sustainsys/Saml2获得的这个样本

这适用于sustainsys saml 存根,但现在是真正的身份验证提供程序(在本例中为Okta)

如果我将应用程序配置为使用 Sustainsys 存根身份验证提供程序并使用带有插件的 Chrome 来查看 SAML 令牌。我可以看到 SAML 令牌返回并按预期呈现给回调:

并且当它运行时,loginInfo 被归档并且所有工作都按预期工作。

但是,当我更改配置以使用我的 Okta 应用程序时,我被重定向到登录到 Okta(如预期的那样),我可以看到成功的身份验证,并且 SAML 令牌返回到我的应用程序(如 Chrome 插件中所示)。但是,回调的上述使用者最终在 loginInfo 中为空值。

进一步深入研究该问题表明,在 Statup.Auth.cs 中有以下代码:

然后添加了 Saml2 身份验证

所以看起来正在使用 cookie 身份验证而不是 saml2。如果我从 Sustainsys 站点检查 cookie,我可以看到它们已添加到浏览器中,并且身份验证按预期工作。但是,如果我使用 Okta 进行身份验证,则不会设置此类 cookie,并且身份验证失败。

删除所有 cookie 身份验证引用会导致:在 IAppBuilder 属性中找不到 SignInAsAuthenticationType 的默认值。如果您的身份验证中间件以错误的顺序添加,或者缺少一个,则可能会发生这种情况。

显然这是必需的,将调用转移到 app.UseSaml2Authentication(CreateSaml2Options()); 在 app.UseCookieAuthentication 之前,徒劳地希望它改变优先级并因此拾取 SAML 令牌失败,并且在代码运行身份验证和调用 AuthenticationManager.GetExternalLoginInfoAsync 时,无论身份验证提供程序如何,总是导致返回空值。

所以我要么需要完全删除 cookie 身份验证,因此它被迫使用 saml 数据包,让 Okta 设置必要的 cookie,或者能够独立解析 saml 2 令牌,而不是依赖 AuthenticationManager.GetExternalLoginInfoAsync 来完成工作。

任何线索/建议表示赞赏

0 投票
1 回答
335 浏览

c# - 在SP返回url中发送到saml2/ACS后,我们可以得到IDP发送的属性吗?

我正在使用 Sustainsys.Saml2.MVC 对 MVC 应用程序实施 Saml 身份验证,并且可以成功地将用户导航到 IDP 并获得对 saml2/ACS 的 saml 响应。正如我所读到的,我们可以使用声明访问 Saml 响应参数,但是当我在声明中搜索以找到与在 Saml 响应中写入的声明相同的声明时,我找不到任何声明。我需要获取一些用 Saml 响应编写的属性,以继续我的其余实现。是否有解决方案可以在应用程序的重新发送 url 中获得发送到 saml2/Acs 的相同 Saml 响应?

0 投票
1 回答
136 浏览

c# - 如何将 Sustainsys.Saml2 从版本 0.23.0 升级到版本 2.0.0

我想将 Sustainsys.Saml2 Nuget 包从 0.23.0 版升级到 2.0.0 版。
我在下一行代码中有错误:spOptions.SystemIdentityModelIdentityConfiguration.AudienceRestriction.AudienceMode = AudienceUriMode.Never;。SPOptions 类不再具有 IdentityConfiguration 属性。

var spOptions = 新 SPOptions();

spOptions.SystemIdentityModelIdentityConfiguration.AudienceRestriction.AudienceMode = AudienceUriMode.Never;

我想知道更新到 2.0 版后如何接收相同的行为。

0 投票
1 回答
2189 浏览

c# - SSO Sustainsys.Saml2.Owin 请求未通过身份验证 - access_denied

我必须为我现有的 asp.net Web 应用程序使用 saml2 进行 SSO 身份验证。

我正在使用 Sustainsys.Saml2.Owin 示例来执行此操作。

身份提供者是 Azure ADFS ( https://sts.windows.net/TENANTID )

我已经配置了启动文件。它加载元数据文件和证书。

在我的登录页面中,如果未通过身份验证,我将面临挑战。

它已成功重定向到登录页面,但登录后请求从未获得身份验证。在回复 URL 中,我们得到error=access_denied

[Request.IsAuthenticated 或 owinContext.Authentication.User.Identity.IsAuthenticated 均未设置为 true]

因此,它不断挑战多次,并因错误请求而出错。

我做错了什么?Owin/Sustainsys 的哪个模块可以设置 IsAuthenticated 状态?

*一个 Saml2。cookie [Saml2.DAeP63c***UTX0h***_***] 在登录 Microsoft 后随请求一起传递 [ https://login.microsoftonline.com/TENANTID/saml2]

启动.cs文件

登录.aspx.cs

0 投票
0 回答
1563 浏览

angular - Cors 阻止 saml2 工作流程

Idp认证页面被浏览器屏蔽:

从源“null”访问https://login.microsoftonline.com/ ...'(重定向自“ https://a.server.b.com/ExternalLogin/Login?d=1560675044037 ”)的 XMLHttpRequest被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我的设置如下:

  • abcom 中的 Angular 独立应用程序
  • a.server.b.com 中的 Asp.net 核心应用程序
  • 需要集成 Saml2 认证
  • 使用sustainsys.saml2

    /li>

我希望看到 idp 登录窗口,但我得到:

从源“null”访问https://login.microsoftonline.com/ ...'(重定向自“ https://a.server.b.com/ExternalLogin/Login?d=1560675044037 ”)的 XMLHttpRequest被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。

它返回 303 的登录请求

我想我知道问题是ajax调用永远不会导致重定向,我的问题是,鉴于我们的系统是一个多租户应用程序,它是否会与其他Idp一样发生,或者这只是一个Azure AD问题?

0 投票
2 回答
224 浏览

sustainsys-saml2 - C# owin 实现

我正在使用 owin 管道实现 SP 启动的 SAML 身份验证登录(使用 Sustainsys saml 库)。我在接收配置的 acs url 上的 saml 响应时遇到问题。从 IDP 接收到 saml 响应并且用户成功登录,但是当我尝试在 ACS url 端点读取 saml 响应时,该方法永远不会在调试流程中命中。

我相信ACS端点是从idp(idp-browser和browser-acs端点)发回saml响应的地方,有人可以指出为什么在浏览器上收到saml响应但没有重定向到ACS URL的问题。

在 IDP 和 SP 端配置 ACS url。我可以在 Saml 请求中看到正确的 ACS 网址。

0 投票
1 回答
238 浏览

httpmodule - 如何配置 Sustainsys.Saml2 http 模块来保护整个 Web 应用程序?

是否可以配置 Sustainsys.Saml2 HTTP 模块来保护其背后的整个 Web 应用程序?

即,如果请求未通过身份验证,HTTP 模块将自动强制用户登录的方式对其进行配置。

目标是在不对应用程序本身进行任何修改的情况下保护 Web 应用程序。

我可以设置 SAML2 http 模块和所需的会话身份验证模块,但是如何配置模块以在请求未通过身份验证时自动调用登录 URL?

0 投票
1 回答
226 浏览

saml-2.0 - SAML 错误“SignatureStatus:NOT_PRESENT”

更新

我发现,如果我将受信任的证书添加到SPOptions.ServiceCertificates并设置SPOptions.AuthenticateRequestSigningBehavior = Sustainsys.Saml2.Configuration.SigningBehavior.IfIdpWantAuthnRequestsSigned;和设置IdentityProvider.WantAuthnRequestsSigned = true,则包含签名元素。


原始问题:

连接到 IDP 时遇到以下问题AuthnRequest

IDP 说:"SignatureStatus: NOT_PRESENT"。我猜这意味着authnrequest应该有一个<ds:Signature部分?如果是这样,我如何配置Sustainsys.Saml2.AspNetCore2以包含它?

我从 idp 收到的元数据 xml 包含一个<ds:Signature部分,但是查看源代码Sustainsys.Saml2.AspNetCore2,看起来在反序列化时元数据的那部分被忽略了?

我对 SAML 的内部结构不是很熟悉,如果这是一个愚蠢的问题,我很抱歉。

0 投票
1 回答
215 浏览

sustainsys-saml2 - Sustainsys.Saml2.Exceptions.InvalidSignatureException

在我的回调 GetExternalLoginAsync 中,返回值始终为 null。所以我将 ILogger 添加到 SP 选项中,并且能够看到 Sustainsys.Saml2.Exceptions.InvalidSignatureException:签名算法http://www.w3.org/2001/04/xmldsig-more#rsa-sha256比最低接受http://www.w3.org/2000/09/xmldsig#rsa-sha1。如果要允许此签名算法,请使用 minIncomingSigningAlgorithm 配置属性。被抛出。

我按照建议添加了 minIncomingSigningAlgorithm="SHA256" 但是现在我遇到了黄屏错误。

问题发生在 Windows 2008 R2 服务器上。它在我们所有其他服务器上运行良好,所以我假设它与操作系统有关。

我最近在此框中安装了 .NET 4.6.1。