繁体   English   中英

了解与OpenID有关的单一登录

[英]Understanding Single Sign On relating to OpenID

我不确定我是否正确理解SSO。 我认为主要想法是,对于许多网站,只有一个用户名/密码。 SSO的另一个想法是仅登录一次,这样您就可以使用具有相同SSO机制的所有其他站点,而无需再次登录。 第一个目标肯定是由OpenID实现的。 但是第二个呢? 如果我使用Facebook登录到stackoverflow,我将不会自动登录到其他也使用facebook登录的站点,是吗? 因此,如果您具有OpenID,是否始终需要为每个站点输入用户名和密码?

您对主要想法是正确的。 openID的优势恰恰在于-能够重用凭据。

基本过程很简单(使用您使用Facebook登录StackOverflow的示例)。

  1. 您访问stackoverflow。
  2. 您说“我是Facebook上的CommanderData”。
  3. Stackoverflow说“真的吗?证明!” -然后转到Facebook,问“这家伙真的是Facebook上的CommanderData吗?”
  4. 如果您已经登录到Facebook,Facebook会回答“是的,他实际上是Facebook上的CommanderData”,现在StackOverflow可以登录您,知道您是您在Facebook上的身份。 如果您没有登录facebook,facebook应该给您机会,通过登录facebook来证明您是CommanderData,然后它将答复StackOverflow。

因此,请回答您的问题:如果您使用Facebook登录到SO,您将不会使用Facebook OpenId自动登录到任何其他站点。 但是,如果您登录到Facebook,则不必每次都登录到Facebook,因为Facebook已经知道您是谁,并且可以告诉RP(您的示例中的依赖方,StackOverflow)。

至于您的评论:我不相信OpenId使用跨域Cookie。 它发出双方都经过验证的单个Web请求(EP和RP),然后两者之间不再进行通信。 StackOverflow实际上并未读取您的Facebook授权cookie。

您可能会发现此演示文稿很有用。

您对SSO的了解是正确的。 是的,您可以使用OpenID来实现SSO;对于Facebook,您可以不使用OpenID登录到OAuth的StackOverflow。

使用OpenID实现SSO的方法不是使用跨域cookie,而是在OpenID Provider域中设置cookie。 因此,每个用户都将通过SP重定向到OP,OP会看到该cookie并标识该用户已经登录并具有有效的会话,因此该用户将立即被重定向回RP,而不会遇到任何身份验证挑战。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM