使用IdentityServer4保护Web API 2.2

Pan*_*are 9 .net asp.net-web-api identityserver4

我有Web API 2.2,它使用.Net 4.5.2框架,由angular2应用程序使用,并且存在IdentityServer4实现.我想使用IdentityServer4保护我的Web API.我的问题是我可以使用IdentityServer4保护Web API 2.2吗?如果是,那么我有两个跟进问题

  1. 我应该使用IdentityServer3.AccessTokenValidation nuget包还是我必须使用IdentityServer4.AccessTokenValidation?(我尝试使用IdentityServer4.AccessTokenValidation包,但它添加了许多与ASP.Net Core相关的依赖项)
  2. 我将不得不使用权限URL的值是什么?

我可以找到许多使用IdentityServer4来保护ASP.Net Core Web API的示例.但是找不到使用IdentityServer4保护Web API 2.2的好例子.如果可能的话,请指出Web API端所需的身份服务器配置的好例子.

Lut*_*ndo 9

回答你的问题:

1)您的WebApi 2.2项目无疑是使用ASP.NET 4.x中的OWIN/Katana,这意味着您应该使用它IdentityServer3.AccessTokenValidation.IdentityServer4.AccessTokenValidation与新的ASP.NET MVC Core管道兼容.

2)您可以通过访问您的身份提供商发现文档来获取您的权限{IdentityUrl}/.well-known/openid-configuration.权限应与发现文档中的"颁发者"值相同.您还可以通过查看"iss"声明查看您的身份提供商发布的JWT来获得权限.


d_f*_*d_f 5

2017 年之后,当 Microsoft 重构其 Owin 和 Identity 库时,IdentityServer3.AccessTokenValidation 保持冻结状态,因此 ASP.NET 4.6+ 的首选解决方案变成了IdentityServer3.Contrib.AccessTokenValidation —— 一个分支,根据最近的框架更改进行了重构。