具有相同源策略和OAuth的REST API身份验证

时间:2012-04-18 21:15:54

标签: security authentication oauth asp.net-web-api

我正在编写一个API供我的JavaScript应用程序使用(同一个域,API位于api.example.comexample.com站点以及第三方开发人员(移动设备,桌面等)。现在我想要使用OAuth但我不知道在使用OAuth和将我的应用程序与原始策略相同时工作流程如何。

如何在我的网络应用中验证用户身份?当我发送用户名和密码时,我可以检查请求是否来自我的域,然后返回令牌?令牌将存储在cookie中,并在每次请求时发送回服务器。所以有两个部分:

  1. 如果请求来自我的域,只需检查令牌,否则抛出HTTP异常。
  2. 如果不是我的域名,请执行OAuth身份验证。
  3. 这可能吗?我如何在asp.net web API中进行设置? (主要是关于检查请求是否在同一个域中的部分)

1 个答案:

答案 0 :(得分:1)

我猜你要登录你的网络应用程序你没有使用OAuth,只是接受用户名和密码并开始会话?如果是这样,您不必为自己的网站打扰OAuth。

将会话Cookie设置为在*.example.com之间有效,您应该能够在site.example.comapi.example.com上验证该Cookie。

示例:

  1. 请求进入api.example.com/verify_credentials.json
  2. 如果OAuth验证成功,则提供响应。
  3. 如果没有,请尝试Cookie验证 - 如果成功则投放
  4. 如果两者都失败,则返回402 Unauthorized
  5. 以下是关于跨子域共享Cookie的主题:ASP.NET Subdomain Cookie (parent and one subdomain)