我们正计划实施 OAuth2 规范并正在审查“访问令牌”实施。看起来规范为实现者提供了很大的自由度,我们正在寻找一些最佳实践:
- 在访问令牌中放入什么?我们希望在尺寸和实用性之间取得良好的平衡。我意识到这是非常特定于应用程序的,但也许有些东西确实值得拥有。
到目前为止,我们确定了以下领域:
- 用户标识符
- 截止日期
- 版本(以便我们将来可以更改格式)
- 客户端标识符(即请求令牌的应用程序)
一些附加属性(例如密码哈希)将存储在数据库中并在身份验证期间进行查找(使用令牌中的字段作为“密钥”)。
- 如何保护它?
我们倾向于安全地签署访问令牌 (HMAC),以便我们知道它是否被篡改。然后每个人都可以读取令牌中的字段。
另一种方法是加密(AES)整个事物并使其对用户完全不透明。这使它变得更大(以字节计)。看起来 FB 现在正在使用加密令牌 (http://developers.facebook.com/blog/post/572/)
关于行业最佳实践的任何建议?
谢谢,彼得