c# - 在 C# .NET Core 的断言有效负载中使用自定义数据为第 3 方应用程序创建 SA

我正在创建一个需要为第三方应用程序验证用户身份的应用程序。要求是我需要向第 3 方提供他们验证的 SAML 断言 token 。

所以我的应用程序充当身份提供者,而第 3 方应用程序是服务提供者。

我还需要在 SAML 断言 token 的负载中包含大量用户数据。第 3 方一旦收到 SAML token ,就应该能够提取此数据。

我的应用程序将是一个 .NET Core 应用程序,一旦用户通过身份验证,我会将用户重定向到第 3 方应用程序的 URL,请求 header 中包含 SAML token 。

关于如何最好地实现这一点的任何想法。理想情况下,我想使用一些标准库来构建 SAML 断言。

谢谢。

最佳答案

我假设您的 IdP 实现应该使用 SAML 协议(protocol)?我问是因为你的问题在这方面并不完全清楚,因为 WS-Federation(结合 SAML1.1 token )也是可能的。

首先,不编写自己的 IdP 而是使用现有产品可能是个好主意。

  • 如果您想要/必须坚持使用 Microsoft 技术,那么 AD FS会是你的好人选。这是在内部使用的 Windows Server 功能。
  • 此外还有一些商业产品(例如 Auth0 或 Onelogin )。
  • 用 C# 编写并且高度可定制的另一个现有产品是 IdentityServer .看看它。我对它不是很熟悉,但在我看来,对 SAML2 协议(protocol)的支持不是免费包的一部分,必须付费。
  • 另一种选择(只有一个,有很多)可以是 SimpleSAMLphp如果您不受 Microsoft 的约束。
  • 如果您打算从头开始完全编写您的 IdP,请查看 Sustainsys.Saml2这是一个主要专注于实现服务提供商但也可用于 IdP 的库。

关于c# - 在 C# .NET Core 的断言有效负载中使用自定义数据为第 3 方应用程序创建 SAML 断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54146886/

相关文章:

php - symfony 4 正在创建发布请求

javascript - Laravel/Vue.js项目中如何使用Vuesax上传组件?

node.js - 为什么作为响应 SIGINT 信号的回调调用的方法在进程终止之前没有完全完成?

aws-lambda - AWS Lambda Go : The VM errors out in

github - 不存在 Jira 票证时如何阻止 GitHub 拉取请求

c# - Selenium Firefox 不添加扩展

python - Apache Beam python Bigquery 将流式插入更改为批量插入?

android - 获取/返回由 Android Room 数据库生成的自动生成的 ID(作为主键)

javascript - 如何在计算属性更改时更改数据?

django - 使用 django 和 firestore,非关系数据库