2015-04-17 30 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。

希望它有幫助。