我们正在开始一个新项目,即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的功能。
答案 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。