问题标签 [itfoxtec-identity-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.
.net-core - 区分大小写的 url,必须与 SP 元数据中指定的完全相同
我在 .net core 2.2 站点上使用 itfoxtec-identity-saml2 进行身份验证。这一切都很好,但一方面,站点的 URL 区分大小写,并且必须与 SP 的元数据中指定的完全相同。如果不是这就是发生的事情(简化):
在元数据中,我网站的根 url 是https://domain/MySite
- Microsoft.AspNetCore.Hosting.Internal.WebHost:请求开始 HTTP/1.1 GET https://domain/mysite
- Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler:AuthenticationScheme:saml2 未通过身份验证。
- Microsoft.AspNetCore.Mvc.ChallengeResult:使用身份验证方案 (saml2) 执行 ChallengeResult。
- Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler:AuthenticationScheme:saml2 受到质疑。
- 请求被路由到 Auth 控制器中的 Login 方法
- Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor:执行 RedirectResult,重定向到https://idp/HTTP-Redirect?SAMLRequest=samlAuthRequest
- Microsoft.AspNetCore.Hosting.Internal.WebHost:请求开始 HTTP/1.1 POST https://domain/MySite/AssertionConsumerService
- Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler:AuthenticationScheme:saml2 已登录。
- 用户现在已通过身份验证,原始请求再次启动:
- Microsoft.AspNetCore.Hosting.Internal.WebHost:请求开始 HTTP/1.1 GET https://domain/mysite
- Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler:AuthenticationScheme:saml2 未通过身份验证。
这一切都从一个新的 saml 身份验证请求和一个成功的 saml 身份验证重新开始,当用户在新的 saml 身份验证请求的永无止境的循环中再次被重定向到原始请求的页面时,站点会立即忘记这一点。
如您所见,原始请求是向https://domain/mysite发出的,IdP 将 SAML-token 发送到元数据中指定的 url https://domain/MySite/,当原始页面是再次请求它再次发送到https://domain/mysite。
我通常不经常使用网络内容,所以我真的不知道我在说什么,但我感觉在返回 SAML 令牌时创建的会话 cookie 仅对应于格式化的 url SAML 令牌正在发送到。
该站点托管在 Windows Server 2012 上的 IIS 中。
有没有办法让网站的网址不区分大小写?
saml-2.0 - 令牌过期并每隔几秒钟继续进入 IDP
有没有办法强制它使用 cookie 或修改超时跨度。每隔几次点击或会话理想时间少于 3 秒时,它就会一直转到 IDP。
asp.net-mvc - ITfoxtec SAML2 能否支持多个 IdP?
我正在尝试让我的 ASP.NET MVC Web 应用程序为多个 IdP 提供 SSO,我想知道是否可以使用 ITfoxtec.SAML2 库来支持这种场景。
我有许多不同的客户,其中一些客户希望将 SSO 与我的服务集成。每个客户端都有一个不同的子域(例如 business1.myapp.com、business2.myapp.com 等),我需要使用它们名称的独特部分来查找它们的元数据并生成一个配置和他们说话。
我看到的示例代码似乎支持更传统的一个 IdP 到一个 SP 方案。
此外,如果有人知道非核心 ASP.NET MVC 示例应用程序,我将非常感激知道在哪里可以找到它。
saml-2.0 - 为什么 ITfoxtec.Identity.Saml2 中存在 SigningCertificateFile
在 MVC 的示例代码中,使用了 itfoxtec.identity.saml2.testwebapp_Certificate.pfx:
在这部分:
但我不明白我为什么需要这个,因为已经有 IdP 的证书,如果有某种方法我不使用它。
angular - Nuget ITfoxtec SAML 和 Angular
我对nuget示例中描述的功能有疑问,尤其是在核心和角度方面。我有一个带有 angular4 的前面,所有请求都通过那里。我用它重定向到 Idp 表单,他再次打电话给我向我传递断言。如何使用 angular 捕获 saml 响应以将其传递回 AssertionConsumerService 方法并获取声明?
更新:我试图将调用直接传递到后面,现在在恢复声明时出现以下错误:{“error”:“IDX13102:读取 Saml2SecurityToken 的 'AuthnContext' 时引发异常。内部异常:'System.ArgumentException:IDX13300: 'value' 必须是绝对 Uri,在 C:\agent1\_work\109\s\src\Microsoft 中的 Microsoft.IdentityModel.Tokens.Saml2.Saml2AuthenticationContext.set_ClassReference(Uri value) 处为:'XXX'\r\n。 IdentityModel.Tokens.Saml\Saml2\Saml2AuthenticationContext.cs:line 108\r\n 在 Microsoft.IdentityModel.Tokens.Saml2.Saml2AuthenticationContext..ctor(Uri classReference, Uri declarationReference) 在 C:\agent1\_work\109\s\ src\Microsoft.IdentityModel.Tokens.Saml\Saml2\Saml2AuthenticationContext.cs:第 77 行\r\n 在 Microsoft.IdentityModel.Tokens.Saml2.Saml2Serializer。C:\agent1\_work\109\s\src\Microsoft.IdentityModel.Tokens.Saml\Saml2\Saml2Serializer.cs:line 661' 中的 ReadAuthenticationContext(XmlDictionaryReader 阅读器)。"}
有任何想法吗?
c# - SAML 与 ASP.NET Core 身份的集成
我们的服务提供商要求提供以下有关 SAML 集成的信息。
- 身份提供者 ID(例如http://myadfs.domain.com/adfs/services/trust)
- XML 元数据(例如http://your-adfs-domain.com/Federation/Metadata/2007-06/Federationmetadata.xml)
- 用户名属性(例如http://myadfs.domain.com/ws/2008/06/identity/claims/windowsaccountname)
现在这是我第一次尝试使用 SAML,我需要构建身份提供程序,并且我想使用ASP.NET Core Identity进行用户身份验证。
据我了解,流程将是
- 在服务提供商站点上,他们有一个使用 SAML SSO 登录的按钮
- 单击该按钮将重定向到身份提供者的登录页面
- 输入用户名和密码,并使用 asp.net 核心身份对我们的数据库进行身份验证
- 如果成功,返回索赔信息
- 登录到服务提供商站点
我研究并发现了几个与 ASP.NET Core 的开源 SAML 集成,例如 Sustainsys 或 ITfoxtec。Sustainsys 有几个样本,看起来SampleIdentityServer4AspNetIdentity是要走的路。
- 使用 .net 身份构建身份提供者是否合适?
- 什么是
new EntityId("https://localhost:44342/Saml2")
和new EntityId("http://localhost:52071/Metadata")
在哪里,我在Startup.cs
哪里可以获得这些值?
任何指导将不胜感激。
saml-2.0 - 尝试 SP 启动的工作流时从 samltest.id 获取 400
我已经使用 itfoxtec 的 SAML2 库在我的 ASP.NET MVC 应用程序中实现了一个 SP。我正在使用 samltest.id 作为 IdP 进行测试。IdP 启动的工作流完美运行,但 SP 启动的工作流总是从 samltest.id 收到 400 错误。我试图查看 samltest.id 的日志,以查看那里是否为我的请求记录了错误,但我似乎在那里找不到任何东西。
这是处理用户在启动 SSO 时将访问的 URL 的操作:
加载特定于客户端的元数据的方法如下所示:
如果有助于澄清情况,我可以添加 AssertionConsumerService 操作的代码,该操作在 IdP 启动的场景中完美运行。
asp.net-core - SAML 服务提供商重定向到 IDP 登录页面
我正在尝试使用 ITfoxtec 构建 IdP。从服务提供商的站点,它将生成 SAML 请求并将它们重定向到 IdP。现在我在 IdP 的登录页面上,但我试图了解 ITfoxtec 代码是如何工作的。
这个方法怎么会Login()
收到来自 SP 的 SAML 请求并立即以一种方法返回 SAML 响应?当 SP 重定向到 IdP 时,我希望登陆 IdP 的登录页面,其中包含针对我自己的数据库进行身份验证的用户名/密码字段。如果成功,则将 SAML 响应返回给 SP。
如果我误解了这个概念,请告诉我或指导我如何实现它。
null - Null : AssertionConsumerService => saml2AuthnResponse.CreateSession 期间的对象引用
我在 MVC.NET(4.7.2 框架)中运行 ITFoxtec.Identity.Saml2.Mvc(v4.5.0)。而且我的 IdP 说已成功通过身份验证...正在重定向回来...但是当我从 IdP 收到响应时-我在此调用中得到了一个空异常。不幸的是,它没有给我一个行号或任何有助于追踪它的东西。
我尝试了多种构建 nuget 包的方法,以使其在失败的地方注销 - 但到目前为止,在从包外部使用/引用时没有运气。我在 web.config 中设置了如下其他设置:
我的 AssertionConsumerService 与您网站上的示例几乎相同:
在 Saml2ResponseExtensions.cs CreateSession() ln.19 上的 printf 调试中,我可以说它(可能?)不会在这一行之前抛出(因为我可以复制+粘贴在我的外部范围内重新创建所有前面的变量,没有问题)。
@AndersRevsgaard 有什么想法吗?
azure - SAML 绑定:在 Azure 上获取 X509Certificate2.PrivateKey 时出错
ITFoxtec Identity SAML 2.0 库包含一个函数来绑定从签名证书中提取私钥的请求。
它在本地机器上工作,但在天蓝色上,它给出了以下错误。
不确定是 saml 库问题还是 azure 配置问题,因为它适用于本地计算机。我正在使用测试 webapp 示例中提供的证书。所以,它看起来并没有损坏。
有谁知道这背后的原因?