使用身份服务器 4 保护 .NET 框架 4.x web API

Protecting .NET framework 4.x web API with Identity server 4 in

我正在使用身份服务器 4,我知道它现在在 ASP.NET 核心上,没问题。

但是我有一个在 .NET 4.6.2 上的 Web API 应用程序。我想知道如何保护这些 APIs。或者有可能吗?或者我应该将我的网络 API 更改为 ASP.NET 核心?

我到处搜索,但所有样本都带有 ASP.NET 内核。

Identity Server 4 不关心客户端是什么。如果需要,您可以使用控制台应用程序测试 ID4,对吗?

你看,归根结底,所有 ID4 基本上都是一个 REST Web API 本身,带有一些在 HTTP 协议之上使用 Open ID Connect/oAuth2 协议的众所周知的端点。只需在此处查看带有控制台客户端的示例,以更深入地了解您希望如何设置客户端:https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/Clients

因此,您的客户端恰好是 Web API net462 并不重要。您所要做的就是将请求发送到托管 ID4 的网址。也许查看 Katana 的 Open ID Connect 中间件可以让事情变得更容易:https://leastprivilege.com/2014/06/12/using-discovery-and-katana-middleware-to-write-an-openid-connect-web-client/。顺便说一句 link 到 Identity Server 的一位创建者的博客。我建议您浏览他的博客以查找更多有用的信息。

更新令牌验证

对于令牌验证,您需要令牌端点:http://docs.identityserver.io/en/release/endpoints/token.html. I suggest to read into JWT tokens, because you could for instance look at Katana JWT middleware: http://odetocode.com/blogs/scott/archive/2015/01/15/using-json-web-tokens-with-katana-and-webapi.aspx