gpt4 book ai didi

security - Web API 身份验证和授权 (OAuth)

转载 作者:行者123 更新时间:2023-12-04 08:44:31 24 4
gpt4 key购买 nike

考虑以下(常见)场景。我将首先尝试使用 OAuth 来指定我如何理解(好的)Web API 应该是什么样子。如果我弄错了任何流程,请纠正我。

我的 API : 关注的焦点,所有客户都使用这个。

我的网络应用程序 :像任何其他客户端一样使用 API。

我的手机应用 :也使用 API,与 Web 应用程序完全相同。用户应该能够在不打开浏览器的情况下进行身份验证。

第 3 方 Web 应用程序 :也使用 API - 但是,用户/资源所有者必须授予应用程序执行某些操作的权限。他们通过重定向到我的网站(或打开它的弹出窗口)、在必要时登录用户并提示用户访问来做到这一点。

第三方手机应用 :与第 3 方 Web 应用程序的要求相同。

问题

  • API 是否应该处理身份验证和授权?
  • API 如何知道谁(使用客户端应用程序的资源所有者)正在使用 API?
  • 当用户使用我的官方客户端时,他们显然不必授予任何权限——我的客户端应该拥有所有权限。调用 API 时如何区分我的官方客户端和 3rd 方客户端?

  • 这是我的理解,并且到目前为止会这样做。这是我真正需要帮助的地方 - 正确完成这项工作。

    官网应用
    - Client attempts to `GET /api/tasks/".
    - API says "who are you? (HTTP 401)
    - Official web app redirects to login form.
    > Bob enters his credentials.
    - .. now what? Get an authentication token? Cookie?
  • 由于 Web 应用程序只是我的 API 的使用者,我将如何管理登录状态?网络应用程序应该这样做吗?
  • Web 应用程序是否应该直接访问用户数据库,而不是根据 API 验证凭据?

  • 我主要使用 .NET (C#),但我喜欢一种也适用于基于 Node JS 的 API 的方法。

    你会怎么做?尤其是客户端流量对我来说是一个问题。我问的原因是我已经读到除非绝对必要,否则您不应推出自己的安全解决方案,因此,如果对此有任何标准指南,请告诉我。 :)

    最佳答案

    看看新的 Web API 2 oAuth 内容。

    基本上启动一个新的 Web API 项目并确保您选择更改身份验证。

    然后,就是调用寄存器 Controller 的简单案例。然后为您创建一个 token ,然后可以在该用户的每个请求的 header 中发送该 token 。

    使用 fiddler 检查 API 调用并创建一些模拟帐户。

    关于security - Web API 身份验证和授权 (OAuth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500628/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com