具有混合身份验证 JWT 和 SAML 的 ASP.NET Web API 2.2 OWIN

Posted

技术标签:

【中文标题】具有混合身份验证 JWT 和 SAML 的 ASP.NET Web API 2.2 OWIN【英文标题】:ASP.NET Web API 2.2 OWIN with mixed authentication JWT and SAML 【发布时间】:2018-02-09 02:04:45 【问题描述】:

我们有一个 WebAPI 需要为不同的客户端应用程序提供服务,每个应用程序都使用不同的身份验证机制。一个 Web 应用程序客户端将使用 SAML 进行身份验证,然后将基于 SAML 的令牌传递给 WebAPI。另一个将使用 OpenID Connect 令牌进行身份验证。

我们需要能够在我们的 WebAPI 中消化这两种类型的令牌,验证它们并验证它们。任何人都可以阐明如何实现这一目标吗?任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

您使用的是什么 IDP?

一些 IDP,例如ADFS 可以配置为在 SAML 连接上传递 JWT 令牌。

SAML 并不真正适用于 Web API。你可以例如使用 SAML / OIDC 进行身份验证,然后使用客户端凭据流到仅依赖于密钥的 Web API。但这不会有用户上下文。

【讨论】:

谢谢。最后,我们决定一直使用 OIDC。事实证明,在同一个应用中同时处理 OIDC 和 SAML 太难了。

以上是关于具有混合身份验证 JWT 和 SAML 的 ASP.NET Web API 2.2 OWIN的主要内容,如果未能解决你的问题,请参考以下文章

JWT 身份验证回退到相同路径的 SAML2

Azure Active Directory 和 ASP.NET Core 的混合身份验证和单点登录

具有 [Authorize] 属性的 JWT 身份验证

具有多个身份验证源的JWT令牌

ASP.Net Core SAML 身份验证

混合 JWT 和 Windows 身份验证。 jwt 失败后弹出凭据