2016-12-28 116 views
6

我正在使用身份服务器4,并且我知道它现在在ASP.NET Core上,并且没有问题。使用身份服务器4保护.NET Framework 4.x Web API

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

我到处搜索,但所有示例都与ASP.NET核心。

+1

我有同样的问题,很好的问题;) –

回答

4

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/。这是作为Identity Server创建者之一的博客链接的方式。我建议你浏览他的博客以查找更多有用的信息。

更新令牌验证

对于令牌验证你想要的令牌端点:http://docs.identityserver.io/en/release/endpoints/token.html。我建议阅读JWT令牌,因为你可以看看Katana JWT中间件:http://odetocode.com/blogs/scott/archive/2015/01/15/using-json-web-tokens-with-katana-and-webapi.aspx

+0

嗨丹尼和感谢您的完整答案。正如你所说的客户端没有问题,我的客户端是Android和iOS应用程序我的访问令牌服务器是asp.net核心身份服务器4,我有net426的API。我想在我的api应用程序中使用AccessTokenValidation,这是我的问题。 –

+0

嗨Pouya,没问题。请参阅我的更新。 –

+0

非常感谢你:) –