使用 .Net Core 和 SAML2 外部 IDP 进行授权的架构

Architecture to use .Net Core and SAML2 external IDP for Authorisation

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

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

我相信 Identity Server 3 具有该功能,但 Identity Server 4 还没有。

还提到了 JWT,还有 Aurelia。

在不退回到旧技术路线​​的情况下,在 2016 c# web api 应用程序中使用 SAML2 身份验证的最佳现代解决方案是什么?我假设还使用基于 Claim 的授权。

编辑:由于有人提议关闭问题。

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

最好的方法是使用使用 OpenID Connect / OAuth 的网桥进入网桥并使用 SAML 出网桥。

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

更新

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

RP --> OIDC --> RP IDP --> SAML --> IDP

其中 RP IDP 是网桥。

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

其中之一是 Kentor