使用IdentityServer4保护Web API 2.2

时间:2016-12-07 17:49:18

标签: .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的值是什么?
  3. 我可以找到许多使用IdentityServer4来保护ASP.Net Core Web API的示例。但是找不到使用IdentityServer4保护Web API 2.2的好例子。如果可能的话,请指出Web API端所需的身份服务器配置的好例子。

2 个答案:

答案 0 :(得分: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来获得权限。

答案 1 :(得分:0)

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