要使用.Net Core和SAML2外部IDP进行授权的体系结构

时间:2016-11-29 11:23:34

标签: c# asp.net-core saml-2.0 identityserver3 identityserver4

我们正在开始一个新项目,即2016年,但我们需要使用外部SAML2 IDP进行身份验证(现有客户帐户),而不是OpenId Connect。它主要是用C#编写的API。

我正在努力找到最好的方法来转向我所知道的可用技术。我们真的更喜欢使用.Net Core,但似乎没有可用的SAML功能。这让我们回到Owin / MVC5 /等。

我相信Identity Server 3具有该功能,但尚未具有Identity Server 4.

还有Aurelia提到JWT。

如果不采用旧技术路线​​,那么在2016 c#web api应用程序中使用SAML2身份验证的最佳现代解决方案是什么?我假设也使用基于授权的声明。

编辑:由于人们建议关闭问题。

我想知道的是,问题的理想答案是......我能够使用.Net Core的方式是什么,但是具有生成SAML2令牌以传递给外部IDP的功能。

1 个答案:

答案 0 :(得分:2)

最好的方法是使用OpenID Connect / OAuth桥接到网桥和SAML输出。

您可以使用IdentityServer 3或ADFS 4.0(Server 2016)。

<强>更新

.NET Core目前没有SAML支持。它确实支持OpenID Connect / OAuth。所以你可以去:

RP - &gt; OIDC - &gt; RP IDP - &gt; SAML - &gt; IDP

其中RP IDP是桥梁。

如果您不想使用.NET Core,则可以使用SAML OWIN库。请注意,这些都是开源的 - 不是由Microsoft提供的。

其中一个是Kentor