是否有一种标准方法可以向您的 Web API 验证应用程序?

Posted

技术标签:

【中文标题】是否有一种标准方法可以向您的 Web API 验证应用程序?【英文标题】:Is there a standard way to authenticate applications to your web API? 【发布时间】:2010-09-13 00:50:46 【问题描述】:

我正在考虑构建一个简单的网络应用程序,该应用程序将公开一个 API,允许第三方(嗯,由我编写,但这不是重点)应用程序查询和修改存储在网站上的用户特定数据。

显然,我不希望应用能够在未经用户同意的情况下获取特定于用户的信息。我想要某种应用程序身份验证,用户允许他们运行的应用程序使用 Web API 访问他们的信息。

是否有标准的方法来实现这一点,或者每个应用程序(即rememberthemilk)都只是专门为他们设计一个定制的解决方案?

【问题讨论】:

【参考方案1】:

OAuth 会为您工作吗?这就是它旨在解决的问题。

【讨论】:

看起来很有趣。似乎有一个相当活跃的社区,至少在 Google Groups 中是这样。你知道是否有人使用它吗? RTM 似乎使用他们自己的东西,就像 twitter..?谷歌支持它(但也有自己的东西)..只是不想建立一个没有人使用的“标准”,你知道:P 根据 ars 的说法,“它得到了 Google、AOL、Yahoo、Twitter、Pownce、Six Apart、Blaine Cook(以前的 Twitter,现在在 Yahoo)等公司的个人和员工的发展支持和马克·阿特伍德。”。对我来说已经足够了:) OAuth 仅涵盖 API 的一个组件。因此,除非您的 API 的其余部分遵循其他人实施的标准,否则其他人是否使用 OAuth 并不重要。如果 OAuth 适合您,请使用它。它有一个可行的模型,经过充分审查,并且有可用的实现。【参考方案2】:

如果数据在 Internet 上传输,请注意通过 HTTPS 访问您的 Web 服务。人们不遗余力地验证他们的 Web 服务,但随后使它们容易受到网络嗅探的攻击。

【讨论】:

而且在很大程度上,如果您使用 HTTPS,OAuth 中的很多机制都是不必要的。但 OAuth 旨在为未加密通道上的流量提供某些保护。

以上是关于是否有一种标准方法可以向您的 Web API 验证应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用本地 AD 系统帐户通过身份验证过滤器保护 Web api?

是否有一种标准方法可以将“复制和粘贴”Javascript 代码添加到 Django 项目中?

ASP.NET Web API 授权和身份验证

如果我有一个来自Web API 2项目的身份验证过滤器,我可以在WCF服务中重用它吗?

Web API 身份验证最佳实践

基于REACT和.NET CORE集成WINDOWS身份验证