是否可以在 .net core 上使用 Identity Server 4 运行 和 .net 4.5.1 上的 WebApi 应用程序 运行?

Is it possible to Use Identity Server 4 running on .net core with a WebApi app running on .net 4.5.1?

考虑以下场景。您有一个应用程序实现了 api 和 asp.net webapi.

您正在设置一个新的 Identity Server 4 以用于您的基础架构。您需要 api 才能使用身份服务器。

如果是 IdentityServer 3,你会使用 IdentityServer3.AccessTokenValidation

如果您的 api 在 .net 核心上,您将使用 IdentityServer4.AccessTokenValidation

但是鉴于您的 api 使用旧式 asp.net webapi,甚至没有 owin,并且您的身份服务器是基于 .net 核心的,您是否可以选择制作他们一起工作?

是的,这很好用。 IdentityServer3 和IdentityServer4 只是遵循相同协议的实现。这同样适用于那些 TokenValidation 中间件。

您可以拥有一个使用 IdentityServer4.AccessTokenValidation 来验证来自 IdentityServer3 WebApi 项目的令牌的 AspNetCore API。相反,您可以有一个 Asp.Net 4.x WebApi,它使用 IdentityServer3.AccessTokenValidation 来验证来自 IdentityServer4 AspNetCore 项目的令牌。实际上,只要提供程序按照规范实现 OpenIDConnect,就可以使用任何大多数 OpenIDConnect 提供程序来对抗您可以在任何 language/framework 中构建的任何 API。