手动生成OAuth访问令牌

时间:2013-07-15 09:54:49

标签: security oauth-2.0

我希望使用OAuth来保护一些网络服务。 OAuth 2很适合我用过的用例可以使用API​​访问他/她自己的数据或授予某人代表他调用API的访问权限。

但是,最初的API用户集并不是非常技术性的,他们不想仅仅为生成令牌而进行API调用。我正在考虑实施以下解决方案,但我不确定这是否正确。

如果用户是开发人员,那么

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

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

      我将使用相同的OAuth库来生成我已经使用的令牌,如果我已经使用了Web服务路由。此外,每当目前的情况不能扩展或需要时,我也可以开发服务,现有的令牌仍然有效。

1 个答案:

答案 0 :(得分:0)

问题主要是安全问题。根据设计,访问令牌的持续时间不应由客户端设置。如果其他人在此期间了解访问令牌和客户端ID,则该用户的帐户将受到损害。通常,此持续时间设置为不是很长,并且第二个秘密值刷新令牌用于刷新当前访问令牌。令牌刷新可以在代码中自动完成,但在您的方法中,它需要手动完成。