2015-04-17 27 views
2

我有一段时间以来一直处于开发阶段的应用程序。 我们使用OWIN与个人帐户。 该应用程序是与WebApi和AngularJs前端的asp.Net MVC。OWIN OAuth授权服务器和个人账户

API增长很多,我们有些情况下需要直接访问API。

问题是它使用CookieAuthentication进行保护。

我想使用与OWIN打包并直接可用的OAuth(尽管很多实现由开发人员决定)。

是否可以在相同的应用程序中添加授权服务器(http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server)的实现,还是应该部署另一台服务器?

整体而言,对于当前部署的网站的用户来说,没有什么应该改变,这只是一个额外的功能来帮助API安全。

谢谢

回答

1

是的,它可以实现您的授权服务器授予客户端访问您的API。

OAuthOptions = new OAuthAuthorizationServerOptions 
      { 
       TokenEndpointPath = new PathString("/OAuth/Token"), 
       AuthorizeEndpointPath = new PathString("/Api/Account/ExternalLogin"), 
       Provider = new MyOAuthAuthorizationServerProvider() 
      }; 

我离开OAuthAuthorizationServerProvider到您的实现,但你可以找到一些灵感与Thinktecture身份项目。

最后一步是将注册新的中间件:

// Enable the application to use bearer tokens to authenticate users (Authorization Server and Resource Server) 
app.UseOAuthBearerTokens(OAuthOptions); 

然后,您可以发送请求到与令牌时使用了“client_credentials”交付式您的OAuth提供者收到的访问你的API。

希望它有帮助。