【问题标题】:Use Case of Oauth 2.0?Oauth 2.0 的用例?
【发布时间】:2020-07-16 06:45:00
【问题描述】:

我曾向许多开发人员询问过这个问题,甚至在堆栈溢出和 CSharpCorner 中也曾问过这个问题,但从未得到满意的答案。 根据每个开发人员的说法, 只有一个用例,如下所述。

“嘿,你想用其他网站的登录名登录我们的网站吗?

我的问题是 如果我有一个 REST API,它只能由我的前端客户端(浏览器和移动设备)使用,并且不涉及第三方应用程序。 OAuth2.0 是正确的工具吗?我知道有表单和基本身份验证。但是社交登录是 OAuth2.0 的唯一用例吗

我礼貌地要求在这里回答所有大师的问题,如果您只是要陈述,请不要回答

Oauth 是一种授权协议,它允许一个应用代表用户使用另一个应用的服务,而无需实际知道他的密码。

【问题讨论】:

  • 您可以拥有一个身份验证提供程序来提供您想要的尽可能多的服务。如果您有多个服务,这是集中身份验证的一种方法。如果你只有一个服务,这有点过分了
  • Oauth 用于分离资源和身份验证。在rest后面你会有资源,这些资源有授权策略,谁可以访问什么,要应用这些策略我们需要知道你是谁,这就是身份验证。如果您已经拥有能够对某人进行身份验证的服务,则 oauth 是一种将这种身份验证从您的服务中卸载的方式(标准)。您需要一个理由来从您的应用程序中卸载此身份验证,因为这会增加同谋
  • 对我来说,卸载身份验证的最大优势不是它自己的身份验证,而是用户帐户数据库。不维护用户帐户数据库的安全需要付出很多努力和头痛。无论如何,您几乎总是需要向用户附加一些信息,并最终拥有一个包含此信息的配置文件表,但所有密码恢复流程和安全措施都不由您负责。如果您同时负责这两项工作,并且只有一个客户端服务,那么我认为没有理由卸载身份验证,HIH
  • @geckos 对 ....意味着当您不需要第三方登录提供程序时,您也找不到任何 Oauth 用途,那么当人们说使用 Oauth 保护您的 API 时意味着什么?我最近遇到了一个关于 udemy 的课程,标题是“使用 OAuth 成为 API 安全专家”,它的真正含义是什么?

标签: oauth2.0 oauth oauth-2.0


【解决方案1】:

好处

OAuth 2 和 Open Id Connect 是 security stack for modern software,原因如下:

  • Web 和移动设备友好 - 基于 JSON 和 HTTPS
  • 当 Web / 移动 UI 调用 Web API 时,令牌用作跨域凭据
  • 非常适合现代托管(API 网关和内容交付网络)
  • Web API 使用令牌作为 API 凭据的唯一形式
  • Web API 使用基于调用者身份的声明来授权请求​​
  • 当您使用 OAuth 时,您不再需要对身份验证方面进行编码或处理密码
  • 有时可以提高登录可用性,例如在移动设备上
  • 与业务合作伙伴联合拥有更好的未来选择

许多未来的业务安全解决方案都基于这些协议构建,例如Open Banking 和访问Medical Data

OAuth 也可以是您构建现代软件平台的依据,并且可以生成更简单的代码。

挑战

实现“流程”并获得良好的可用性和可靠性也可能需要一个陡峭的学习曲线。

当公司开始使用 OAuth 时,他们通常需要将一些现有的用户数据迁移到授权服务器并更改登录用户体验。

blog of mine 专注于开始使用 OAuth 架构,您可以运行一些 web and mobile code samples

它适合您的网络/移动用户界面吗?

在技术方面,OAuth 是 Web/移动与 REST API 集成的首选解决方案,其中 Web UI 和移动 UI 在 API 请求中发送访问令牌。

成本和对最终用户的影响是选择潜入 OAuth 的时机的另一个关键因素。它可以是一个“项目”,而不是一个小的技术工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多