【发布时间】:2011-09-05 08:22:46
【问题描述】:
我即将创建一个数据库表来存储 OpenID 登录信息。除了声明的标识符之外,我想我还将包括这三列:
- The OpenID endpoint
- The OP-Local Identifier
- The realm
- OpenID 版本(1 或 2)
您是否存储这些字段?
您认为存储这些字段是否合理?原因如下:
-
OpenID 端点:因此您知道哪个 OpenID 提供者对用户进行了身份验证。也许在未来你会发现一个提供商并不是那么值得信赖,然后我认为知道 someuser.example.com 是否由该提供商认证是件好事。
OP 本地标识符:我认为它允许我跟踪用户,即使她更改了用户提供的标识符。 (例如,如果她的 User-Supplied Identifier 是 example.com/username,但她将其更改为somethingelse.com/username,那么我认为 OP-Local Identifier 将保持不变(假设用户继续使用相同的 OpenID Provider) .
领域:我正在构建一个多租户 web 应用程序,如果我存储领域,将更容易知道两个看似不同的 OpenID 标识符是否代表同一个人。 (Google uses directed identities:您的声明 ID 因领域而异。因此同一用户可以有许多不同的声明 ID。)
版本:如果将来出现一些安全问题,使用某些 OpenID 版本,那么最好知道哪些用户可能会受到影响。
领域和端点,用于统计收集目的。
(你能想到我应该存储的其他一些与 OpenID 相关的值吗?例如,我想识别提供者。为此,存储端点就足够了?我不需要存储提供者的名称?)
【问题讨论】:
标签: openid