SSO流程 - 可接受的解决方案?

时间:2010-08-15 12:31:55

标签: asp.net

我需要为网站实施单点登录流程。我将站点A称为具有登录屏幕的站点,站点B作为需要自动登录的站点。这两个站点位于不同的域上,我对站点A没有任何控制权。但是我需要为这个过程提出建议。

经过一番阅读后,我有了这个建议。站点A将查询字符串中的票证传递给站点b。像SiteB.aspx这样的东西?Ticket = {guid}。此票证必须是由站点A管理的一次性有效值。我的站点(站点B)将以Web服务调用的形式将票证传递回站点A.如果故障单有效,则此呼叫的响应将包含我可用于自动登录的帐户ID。

这看起来是否可以接受?站点B将使用HTTPS。将查询字符串中的Ticket传递给安全还是最好将Ticket作为附加标头传递?如果在https下,票证是否仍然需要加密?

1 个答案:

答案 0 :(得分:2)

不,由于以下几个原因,这对我来说似乎不是一个可接受的解决方案:

  • 即使使用HTTPS
  • ,查询字符串也未加密
  • 有人看着用户的肩膀可能会劫持该用户的会话
  • 您尚未指定故障单的最长生命周期,如果故障单受到危害,这一点很重要(Kerberos故障单都使用此功能)
  • 你还没有确定网站B如何信任网站A.听起来有人可能介入中间,也许会欺骗网站B认为它是网站A而网站B会对它们进行身份验证。

您可以将这两个网站设为share the same key,以便他们互相尊重Forms Authentication cookie