监视使用 OAuth 的应用程序的挑战

奥思登录

在日益相互交织的应用程序的互联网生态系统中,当一个应用程序希望代表用户对另一个应用程序执行某些操作时,需要了解如何执行此操作,而无需将一个应用程序的密码共享到另一个应用程序。 这方面的一个常见示例是,通过想要在时间线上发布某些内容或想要访问您的 Google 云端硬盘的应用在 Facebook 登录。 如果您与此类应用共享您的 Facebook 密码,以便它们能够访问您的时间线,并且这些应用会遭遇数据泄露,则您的 Facebook 凭据也会受到威胁。 此外,通过共享您的密码,您可以让此类应用完全控制您的 Facebook 帐户,而不是有限的访问。 为了解决这一难题,定义了一种名为OAuth的协议。

 

Oauth

OAuth 是一种开放标准的授权协议/框架,它使应用程序能够在不共享密码的情况下获得对另一个应用程序的用户帐户的有限访问权限。 这些应用程序提供授权令牌,可用于在不影响密码的情况下代表您使用其他应用程序的服务。 OAuth 可用于授权应用程序、API、设备和服务器。

在高级别上,它是一个安全委派的授权过程,通过 HTTP 进行有限的访问,而不是使用将安全风险降至最低的凭据。 如果发生任何安全漏洞,并且您的数据从有权访问您的 Facebook 的应用被盗,则您的 Facebook 密码是安全的。 不用担心。

OAuth 有两个版本 – OAuth 1.0a 和 OAuth 2.0。 两个版本在规格上完全不同,并且不兼容,可以一起使用。 但是 OAuth 2.0 版本使用得最广,除非明确提及,否则我们将只关注这一版本。”

演员和流程

在 OAuth 流中有四个参与者,也称为角色。

  1. 资源所有者(用户) – 驻留在资源服务器上的相应数据的所有者。 资源所有者授权帐户访问,该访问仅限于授予的授权范围。
  2. 资源服务器 (API) – 它是用户帐户/资源托管在受保护的环境中的地方。
  3. 客户端(应用程序) – 请求访问用户帐户的应用程序。
  4. 授权服务器 (API) – 授权服务器执行身份验证以颁发访问令牌。

 

这些参与者根据 OAuth 协议相互交互。 请注意,OAuth 协议是关于授权的,而不是身份验证。 OAuth 协议的一般流如下所示:

  1. 客户端希望访问资源服务器,并请求用户的权限。
  2. 用户授权请求或拒绝它。
  3. 在授权的情况下,客户端将获得授权授予。
  4. 然后,客户端向授权服务器提供此授权授予及其标识以及访问令牌请求。
  5. 如果客户端同时具有有效标识和授权授予,则授权服务器会向它提供访问令牌。
  6. 然后,客户端将转到资源服务器,并通过向其显示访问令牌来请求资源访问。
  7. 仅当令牌有效时,资源服务器才提供对客户端的允许有限访问权限。

 

监控启用 OAuth 的应用程序时的挑战

OAuth 实现使你的应用能够访问具有隐私保护和出色的用户体验的其他应用中的服务器资源。 但与此同时,OAuth 在监视您的应用程序时也带来了一些挑战。 让我们来看看这些挑战。

 

令牌管理 –OAuth 实现需要通过状态管理管理令牌。 这意味着这些令牌被刷新和旋转。 如果发生授权错误,则很难确定 OAuth 协议中哪个参与者出现故障。 它成为调试噩梦。

OAuth 请求/响应依赖项 –如果您的 OAuth 提供商改变了其机制中的内容,该怎么办? 即使请求/响应参数的微小变化也会破坏整个应用程序。 如果您的开发人员没有注意 OAuth 提供商的新版本,则可能需要一段时间才能确定它。

回拨 –根据实现的不同,对于成功的 OAuth 事务,所有参与者之间可能需要多个 API 调用。 在大多数情况下,回调方法用于实现此目的,如果中间有任何中断,则该方法可能足够复杂,可以跟踪。 传统的监视工具不足以精确定位回调错误,增加调试时间,从而增加停机时间。

配置 –这对让您的 DevOps 团队的生活变得轻松非常重要。 如果您使用的监视工具不专门处理高度可配置的 HTTP(S) 任务,则很难监视 OAuth 流,涉及令牌过期/续订以及 HTTP(s) 的多个 API 调用。

 

用于监控启用 OAuth 的应用程序的解决方案

当我们处理第三方依赖项、HTTP(S)、REST API、复杂的用户路径和自定义登录机制(如 OAuth 等)时,综合监视是一个绝佳的选择。

合成监视的工作原理是使用自定义脚本模拟最终用户行为,在高度可配置的环境中支持体系结构灵活性,然后以主动方式监视流量和流。 这有助于在真实用户面对问题之前检测和解决问题。 Dotcom-Monitor 平台利用一个点和单击脚本工具(称为“每个步骤 Web 记录器“)来创建可以模拟用户路径的脚本,以及验证作为对特定操作的响应返回的内容。 为了克服 OAuth 实施带来的监视挑战,您需要使用具有以下必备功能的专用综合监视工具:

 

多步骤 Web 事务监控 –正如我们简要提到的,成功的 OAuth 交易是其参与者之间的多步过程。 通过综合监视,您可以为 OAuth 事务配置多步骤监视,并持续监视它们的可用性和性能。 多任务监视将准确告诉您哪个步骤负责损坏的流,以便您可以快速修复它。

具有 HTTP/S 任务的自定义脚本 –实际 OAuth 实现因应用程序而异,具体取决于体系结构和安全策略。

 

合成 Web 服务监视工具允许您为复杂的用户路径编写高度可配置的 HTTP(s) 任务和自定义脚本。 这将有助于您监视应用程序的 OAuth 事务的端到端流以及 API 和回调的总体运行状况。 此外,如果需要验证作为响应返回的数据(如用户名),可以使用 EveryStep Web 记录器设置脚本以验证这些特定关键字。

除了这些功能之外,综合监视工具是监视第三方依赖项、Web 服务和协议(SOAP、REST、TCP 和 ICMP 协议)和基础结构的宝贵资产。 Dotcom-Monitor 允许您使用 HTTP(s) 任务为基于 OAuth 的 Web API 配置多步骤事务,并全天候持续检查其发布时间、性能和功能。

尝试完整的Dotcom-Monitor平台免费30天

 

Facebook
Twitter
LinkedIn
电子邮件
打印