0

我即将在网站上实现这一点,想知道我是否在某个地方错过了这一点。该网站是一个私人体育俱乐部,我们不希望任何人登录 - 他们必须是付费会员。但是,Open Id 可能会使成员变得更简单。

我已经使用“Openid.php”构建了一个测试,这一切似乎都有效,但我想知道将其链接到真实的俱乐部帐户。它怎么知道通过谷歌登录的人真的是会员?

我注意到,当我开始在 Stack Overflow 上使用 Open Id 时,它可以正常工作,我无需验证/确认任何内容,并且创建了 SO 帐户,我可以使用 Google 登录。没有人要求我验证通过 Google 登录的人确实是创建 SO 帐户的同一个人(我)。我认为它可能通过比较电子邮件地址来做到这一点,认为它们匹配时我们是同一个人,然后存储 Open Id Google 身份。

但是,因此在我看来,如果我使用这种方法,如果流氓知道俱乐部成员的电子邮件地址,她/他需要与一些 Open Id 提供者做的只是暂时将他们的电子邮件更改为俱乐部的电子邮件会员,进入俱乐部登录页面,使用相关的 Open Id 按钮,一切都会匹配,他们就会进入。电子邮件地址不是私人的,所以不安全。

因此,在我看来,为了使这相当安全,我需要一种机制,会员使用他或她的真实俱乐部登录名/密码登录(至少一次),然后有一种验证和保存 Open Id 响应身份的方法,有效地说“是的,这真的是我”。

不太方便,但更安全。我对吗?

4

1 回答 1

0

OpenID 的重点是 OpenID 提供商(例如 Google)负责登录详细信息,例如密码和可能的两因素身份验证等。您的服务器只是竖起大拇指“我们已经确定这是用户 XYZ”。然后,您可以随意使用此信息。每当 Google 告诉您“这是用户 XYZ”时,您可以确定是 Google 知道的“XYZ”用户。这是一个独一无二的身份,任何人都无法伪造;OpenID 协议本身会确保该交易是安全的并且不能被欺骗。

这当然意味着 OpenID 提供者也需要值得信赖和安全,但这取决于您是否信任它。最后,您为该用户创建一个帐户,并将其与 OpenID 凭据(即Provider + ID)相关联,而不仅仅是电子邮件地址本身。如果另一个用户通过不同的提供商但使用相同的电子邮件地址登录,则由您决定如何做。如果您不关心自己服务中的电子邮件,则没有问题。如果您确实在服务中使用电子邮件作为标识符,则需要一些确认反馈循环以确保没有人可以劫持其他用户的帐户。

于 2013-07-16T07:22:12.927 回答