使用OAuth,我可以获取访问令牌并保留在我的数据库中(或使用刷新令牌并执行相同操作)。但这不是安全风险吗?因为任何内部开发人员都可以使用它并在客户知道的情况下访问数据。早些时候我们有密码,因为密码是经过哈希处理的,开发人员无法使用密码。
例如:公司中的应用程序提供的O365邮件访问权限。开发人员阅读另一名员工的电子邮件。
答案 0 :(得分:2)
访问令牌通常不存储在OAuth中的数据库中。
刷新令牌,但是当客户端想要使用刷新令牌时,它还需要客户端ID和密码。客户端密钥就像一个密码,当客户端在授权服务器上注册时会被提供给客户端,并且应该在数据库中进行盐渍和散列存储。
因此,流氓开发人员不能仅从数据库中窃取刷新令牌并使用它来模拟客户端。
答案 1 :(得分:1)
如果存在这样的内部安全威胁,您可以在存储令牌之前对其进行散列或加密,基本上采用与密码相同的方法。当然,只有当开发人员无法访问加密密钥或散列密钥时才有意义......