当前位置: 首页 > 知识库问答 >
问题:

ASP. Net Core SAML认证

子车凌龙
2023-03-14

我正在尝试将SAML2.0身份验证添加到ASP。Net核心解决方案。我找不到关于这个主题的任何文档,所以我不确定从哪里开始。可能有文档,但我不想花3天时间成为这方面的专家。

从我所看到的ASP。Net Core已经改变了旧OWIN程序集/名称空间中的某些内容。有第三方库可以简化SAML2.0实现,例如Kentor。授权服务。

我不确定如何将此与ASP结合。NET5RC1/ASP。净核心。例如,在SQL中使用AspNet*表。

ASP. Net 5 RC 1附带了几个库来实现身份验证(客户端)。

例如:

  • 微软。AspNet。认证。OAuth
  • 微软。AspNet。认证。Facebook
  • 微软。AspNet。认证。谷歌
  • 微软。AspNet。认证。推特

实现这些功能需要在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 therLogins=_signInManager检索身份验证提供程序。(3).其中(auth=

如何在ASP中实现SAML2.0身份验证。NET5RC1/ASP。净核心?


共有3个答案

巫马翰翮
2023-03-14

ITfoxtec Identity Saml2现在支持。NET核心2.1。

项目:https://itfoxtec.com/IdentitySaml2和代码示例:https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test

在ASP中实现SAML2.0。NET MVC Core 2.1项目您需要以下NuGet软件包:https://www.nuget.org/packages/ITfoxtec.Identity.Saml2.MvcCore/

陈允晨
2023-03-14

这可能基本上是安德斯·亚伯回答的更新版本,但是:

我曾经https://github.com/Sustainsys/Saml2.他们有一个名为“Sustainsys.Saml2.AspNetCore2”的下载量为36k的nuget软件包。

他们有一个有用的例子。net核心应用程序使用它也使用它。net核心标识:https://github.com/Sustainsys/Saml2/tree/master/Samples/SampleAspNetCore2ApplicationNETFramework(查看他们的startup.cs,以及他们的外部登录页面,了解实现细节)。

他们还在这里托管了一个很好的测试IdP:https://stubidp.sustainsys.com.这样,你可以确认你的应用的ACS(断言消费者服务)endpoint与你的登录页面等一起工作。

他们在github上提到:“该库以前名为Kentor.AuthServices。”

高正初
2023-03-14

据我所知,ASP没有SAML2实现。净核心。我计划做一个ASP。NET核心中间件,用于Kentor。AuthServices(我是维护者),但它只是计划而已

现在有一个ASP的工作原型。NET核心中间件https://github.com/KentorIT/authservices/pull/489.当添加测试时,它将包含在正式版本中。

同样重要的是要知道,虽然这样的中间件将与ASP兼容。NET核心安全模型,它将只在完整的服务器上运行。NET框架,而不是打开。净核心。原因是系统中支持SignedXml和SAML2。中尚未提供IdentityModel。净核心。

 类似资料:
  • 我无法找到一种REST webservice方式来身份验证(登录)并知道他的角色(授权)。虽然,Openbravo维基说有一种登录的方法,但没有提供任何其他关于其网址等细节。有人能在这方面提供帮助吗?谢啦 编辑 我也在Openbravo论坛上发布了这个问题。希望这将有利于其他人。

  • 和 Web 应用不同,RESTful APIs 通常是无状态的, 也就意味着不应使用 sessions 或 cookies, 因此每个请求应附带某种授权凭证,因为用户授权状态可能没通过 sessions 或 cookies 维护, 常用的做法是每个请求都发送一个秘密的 access token 来认证用户, 由于 access token 可以唯一识别和认证用户, API 请求应通过 HTTPS

  • 认证是鉴定用户身份的过程。它通常使用一个标识符 (如用户名或电子邮件地址)和一个加密令牌(比如密码或者存取令牌)来 鉴别用户身份。认证是登录功能的基础。 Yii提供了一个认证框架,它连接了不同的组件以支持登录。欲使用这个框架, 你主要需要做以下工作: 设置用户组件 user ; 创建一个类实现 yii\web\IdentityInterface 接口。 配置 yii\web\User 用户组件 u

  • 简介 Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。 开始 认证服务提供者 注意: 在使用 Lumen 的认证功能前,请取消 bootstrap/app.php 文件中的 AuthServiceProvider 调用

  • 认证 通过CVS的pserver,你需要在读写操作之前“登陆”到服务器—即使是匿名操作。Subversion版本库使用Apache的httpd或svnserve作为服务器,你不需要开始时提供认证凭证—如果一个操作需要认证,服务器会要求你的凭证(不管这凭证是用户名与密码,客户证书还是两个都有)。所以如果你的工作拷贝是全局可读的,在所有的读操作中不需要任何认证。 相对于CVS,Subversion会一

  • 单独使用PAP可能会带来安全风险,但通过TLS进行隧道传输时非常安全。 这些用户可能正在使用CHAP进行身份验证。 CHAP要求密码以明文形式存储。 大多数RAS服务器允许您选择它支持的身份验证协议。 将RAS服务器配置为仅使用PAP。 您可以使用smbencrypt程序加密密码,并使用NT哈希值的NT-Password AVP。

  • 需要认证的 Swift API 请求必须在请求头里带上 X-Storage-Token 认证令牌。此令牌可以从 RADOS 网关、或别的认证器获取,要从 RADOS 网 关获取的话需创建用户,例如: sudo radosgw-admin user create --uid="{username}" --display-name="{Display Name}" For details on RAD

  • web客户端可以使用以下机制之一向web服务器认证用户身份: HTTP Basic Authentication(HTTP基本认证) HTTP Digest Authentication(HTTP摘要认证) HTTPS Client Authentication(HTTPS客户端认证) Form Based Authentication(基于表单的认证) HTTP Basic Authentica