gpt4 book ai didi

security - 如果提供商受信任,通过电子邮件地址识别 OpenID 用户是否安全?

转载 作者:行者123 更新时间:2023-12-04 11:42:41 27 4
gpt4 key购买 nike

我正在使用 DotNetOpenAuth 进行 OpenID 登录。 Google 的提供者会根据调用者的领域(主机名 + 端口)返回不同的 ClaimedIdentifier。

根据 OpenID 身份验证回调返回的电子邮件地址与声明的标识符本身验证登录是否安全?即,如果我们在电子邮件而不是声称的 ID 上进行验证,用户是否可以伪造他们的电子邮件地址,从而获得对另一个用户帐户的访问权限?

我在想这样就可以了只要提供者是可信的 - 即我们可以相信 Google 不会允许用户使用其他人的电子邮件地址登录。

最佳答案

OpenID 2.0 协议(protocol)的安全模型是围绕声明标识符构建的,而不是电子邮件地址。所以最好的方法是让你的 Realm 保持一致。如果你能做到这一点,那是最好的方法。

将电子邮件地址存储在用户表中也是一个好主意,这样如果您的领域必须更改(可能您的公司被另一家收购),您将能够迁移您的用户。但是,如果您打算这样做,您还应该在收到电子邮件地址时存储身份验证期间的 OP Endpoint 是什么,以便您知道是否可以信任它。

通常,完全信任电子邮件地址是不安全的。如果您信任提供商(在您的情况下是 Google)为您提供经过验证的电子邮件地址,那么您可以信任这些电子邮件地址,前提是您确认它确实是对用户进行身份验证的提供商。 这只能通过验证 IAuthenticationResponse.Provider.Uri 来正确完成。值(value)是您信任的。 由于 OpenID 的“未经请求的断言”功能,它不能仅通过仅提供“使用 Google 登录”按钮隐式完成,该功能允许用户使用任意提供者登录,而不管 RP 在其 UI 中提供什么。由于声明标识符和本地标识符之间的差异,因此无法通过检查声明标识符的域来完成。

关于security - 如果提供商受信任,通过电子邮件地址识别 OpenID 用户是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com