【问题标题】:Architecture to use .Net Core and SAML2 external IDP for Authorisation使用 .Net Core 和 SAML2 外部 IDP 进行授权的架构
【发布时间】:2024-01-03 09:46:01
【问题描述】:

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

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

我相信 Identity Server 3 有这个功能,但 Identity Server 4 还没有。

还提到了智威汤逊和 Aurelia。

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

编辑:由于有人提议结束这个问题。

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

【问题讨论】:

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


    【解决方案1】:

    最好的方法是使用网桥,使用 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

    【讨论】:

    • 谢谢@nzpcmad。你能详细说明一下你所说的桥是什么意思吗?您是否建议使用 SAML 进行初始检查,然后转换为 OpenID Connect/OAuth 令牌?
    最近更新 更多