0

我希望使用 OAuth 来保护一些 Web 服务。OAuth 2 非常适合我的用例,在这些用例中,用户可能使用 API 访问他/她自己的数据或授予某人访问权限以代表他调用 API。

但是,最初的 API 用户集技术含量不高,他们不希望仅仅为了生成令牌而进行 API 调用。我正在考虑实施以下解决方案,但不确定这是否正确。

如果用户是开发者,那么

  1. 有一个屏幕,他/她可以在其中注册应用程序。这将生成一个 API 密钥/秘密对。
  2. 要访问他/她自己的数据(对于 2 腿身份验证),有一个 UI 屏幕,用户可以在其中为他注册的应用程序生成访问令牌。他可以在表格中指定范围和持续时间。
  3. 如果他是第 3 方开发人员,那么他需要将他的应用程序 API 密钥传递给他需要代表其访问 API 并获得访问令牌的人作为交换。

如果用户希望另一个应用程序/开发人员代表他访问 API,那么

  1. 有一个屏幕,他可以在其中输入第三方的 API 密钥、范围和授权期限。他可以将生成的访问令牌传递给将访问 API 的开发人员

我将使用相同的 OAuth 库来生成如果我走 Web 服务路线我会使用的令牌。此外,当当前情况无法扩展或需要时,我还可以开发服务并且现有令牌仍然有效。

4

1 回答 1

0

问题主要是安全问题之一。按照设计,访问令牌的持续时间不应由客户端设置。如果其他人在此期间知道了访问令牌和客户端 ID,则此用户的帐户将被盗用。通常这个持续时间设置得不是很长,并且使用第二个秘密值刷新令牌来刷新当前访问令牌。令牌刷新可以在代码中自动进行,但在您的方法中需要手动完成。

于 2013-07-16T07:08:42.967 回答