SAML 与 ASP.NET 核心身份集成
SAML integration with ASP.NET Core Identity
我们的服务提供商要求提供以下 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核心身份
对我们的数据库进行身份验证
- 如果成功,return索取信息
- 登录到服务提供商网站
我研究并发现了几个与 ASP.NET Core 集成的开源 SAML,例如 Sustainsys 或 ITfoxtec。
Sustainsys 有几个 samples,看起来 SampleIdentityServer4AspNetIdentity 是可行的方法。
- 用 .net 身份构建身份提供者合适吗?
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。
我们的服务提供商要求提供以下 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核心身份 对我们的数据库进行身份验证
- 如果成功,return索取信息
- 登录到服务提供商网站
我研究并发现了几个与 ASP.NET Core 集成的开源 SAML,例如 Sustainsys 或 ITfoxtec。 Sustainsys 有几个 samples,看起来 SampleIdentityServer4AspNetIdentity 是可行的方法。
- 用 .net 身份构建身份提供者合适吗?
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。