【问题标题】:OWIN OAuth Authorization Server and individual accountsOWIN OAuth 授权服务器和个人账户
【发布时间】:2015-04-17 14:20:55
【问题描述】:

我有一个应用程序已经开发了很长一段时间了。 我们将 OWIN 用于个人帐户。 该应用程序是带有 WebApi 和 AngularJs 前端的 asp.Net MVC。

API 增长了很多,在某些情况下,我们需要让客户端直接访问 API。

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

我想使用与 OWIN 打包并直接可用的 OAuth(尽管很多实现看起来都取决于开发人员)。

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

对于当前部署的网站的用户来说,一切都不应该改变,这只是帮助 API 安全的一个额外功能。

谢谢

【问题讨论】:

    标签: asp.net-mvc oauth-2.0 owin


    【解决方案1】:

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

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

    我将 OAuthAuthorizationServerProvider 的实现留给您,但您可以从 Thinktecture Identity 项目中找到一些灵感。

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

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

    然后,您可以使用“client_credentials”授权类型,使用从 OAuth 提供商处收到的访问令牌向 API 发送请求。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-01-15
      • 2014-07-09
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 2014-10-28
      • 2019-04-05
      • 1970-01-01
      • 2013-04-20
      相关资源
      最近更新 更多