在C#.NET Core的声明有效负载中使用自定义数据为第三方应用程序创建SAML声明

时间:2019-01-11 12:47:19

标签: c# .net saml

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

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

我还需要在SAML断言令牌的有效负载中包含用户数据负载。他们收到SAML令牌后,第三方应能够提取此数据。

我的应用程序将是.NET Core应用程序,并且在对用户进行身份验证之后,我会将用户重定向到带有请求标头中的SAML令牌的第三方应用程序的URL。

任何能最好地实现这一目标的想法。理想情况下,我想使用一些标准库来构造SAML断言。

谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

  • 如果您希望/必须坚持使用Microsoft技术,那么AD FS将是您的理想选择。这是前提条件下使用的Windows Server功能。
  • 此外,还有几种商业产品(例如Auth0Onelogin)。
  • 要在内部使用的另一种现有产品(用C#编写并且可以高度自定义)是IdentityServer。看看它。我对它不是很熟悉,但是在我看来,对SAML2协议的支持不是免费软件包的一部分,必须付费。
  • 如果您不受Microsoft的约束,则可以选择SimpleSAMLphp。(只有一个,有很多)。
  • 如果您要完全编写IdP,请查看Sustainsys.Saml2,该库主要专注于实现服务提供者,但也可以用于IdP。

答案 1 :(得分:0)