【发布时间】:2016-05-19 11:00:33
【问题描述】:
我正在尝试将 SAML 2.0 身份验证添加到 ASP.Net Core 解决方案。我找不到关于这个主题的任何文档,所以我不确定从哪里开始。那里可能有文档,但我不想花 3 天时间成为这方面的专家。
据我所知,ASP.Net Core 改变了旧的 OWIN 程序集/命名空间。有第三方库可以简化 SAML 2.0 的实现,例如 Kentor.AuthServices。
我不确定如何将其与 ASP.Net 5 RC 1 / ASP.Net Core 结合使用。例如在 SQL 中使用 AspNet* 表。
ASP.Net 5 RC 1 附带了几个库来实现身份验证(客户端)。
例如:
- Microsoft.AspNet.Authentication.OAuth
- Microsoft.AspNet.Authentication.Facebook
- Microsoft.AspNet.Authentication.Google
- Microsoft.AspNet.Authentication.Twitter
实现这些只是在Startup.cs中调用一个简单的扩展方法:
app.UseIdentity()
.UseFacebookAuthentication(new FacebookOptions
{
AppId = "ID",
AppSecret = "KEY"
})
.UseGoogleAuthentication(new GoogleOptions
{
ClientId = "ID",
ClientSecret = "SECRET"
})
.UseTwitterAuthentication(new TwitterOptions
{
ConsumerKey = "KEY",
ConsumerSecret = "SECRET"
});
完成后,ASP.Net 示例项目会自动显示用于登录/管理帐户的社交按钮:
在后端代码中,使用var otherLogins = _signInManager.GetExternalAuthenticationSchemes().Where(auth => userLogins.All(ul => auth.AuthenticationScheme != ul.LoginProvider)).ToList(); 检索身份验证提供程序。这意味着身份验证提供程序在某处注册,通过调用_signInManager.GetExternalAuthenticationSchemes() 使其可用。
如何在 ASP.Net 5 RC1 / ASP.Net Core 中实现 SAML 2.0 身份验证?
【问题讨论】:
-
看看github.com/IdentityServer/IdentityServer4。没有 SAML,但可能有一些线索?
-
您是否设法将 SAML2 实施到您的 aspnet 核心应用程序中?如果你这样做,我会喜欢一个例子......
-
不,抱歉。跳过实施它并找到了另一个解决方案。
-
能否请您至少告诉我们解决方案名称
-
我最终使用 ASP.Net Identity 使用本地存储的用户。
标签: asp.net-core saml-2.0