SAML 与 ASP.NET 核心身份集成

SAML integration with ASP.NET Core Identity

我们的服务提供商要求提供以下 SAML 集成信息。

这是我第一次尝试使用 SAML,我需要构建身份提供者,我想使用 ASP.NET Core Identity 进行用户身份验证。

据我理解,流程是

  1. 在服务提供商网站上,他们有一个使用 SAML SSO 登录的按钮
  2. 点击该按钮将重定向到身份提供者的登录页面
  3. 输入用户名和密码并使用asp.net核心身份
  4. 对我们的数据库进行身份验证
  5. 如果成功,return索取信息
  6. 登录到服务提供商网站

我研究并发现了几个与 ASP.NET Core 集成的开源 SAML,例如 Sustainsys 或 ITfoxtec。 Sustainsys 有几个 samples,看起来 SampleIdentityServer4AspNetIdentity 是可行的方法。

  1. 用 .net 身份构建身份提供者合适吗?
  2. Startup.cs 中的 new EntityId("https://localhost:44342/Saml2")new EntityId("http://localhost:52071/Metadata") 是什么,我在哪里可以获得这些值?

如有任何指导,我们将不胜感激。

您描述的登录流程是正确的。

可以使用 ITfoxtec.Identity.Saml2 包和 ASP.NET 核心身份构建身份提供者。我已经多次使用 ITfoxtec.Identity.Saml2 包实现身份提供者。 但是你需要意识到实施安全解决方案,它需要正确完成,否则你会给黑客留下很多可能性:)

new EntityId("https://localhost:44342/Saml2")是您自己定义的身份提供者id。

A​​ link 到 ASP.NET 核心身份提供程序示例应用程序 https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test/TestIdPCore。但是,示例应用程序未使用 ASP.NET Core Identity。