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

请考虑以下情形。 您有一个使用asp.net webapi实现api的应用程序。

您正在设置新的Identity Server 4以与基础结构一起使用。 您需要api才能使用Identity Server。

如果是IdentityServer 3,则使用IdentityServer3.AccessTokenValidation 。

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

但鉴于你的api使用旧式的asp.net webapi,甚至不是owin,而你的Identity Server基于.net核心,你有没有选择让它们一起工作?

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

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