单点登录已存在的多个Web应用程序

时间:2015-12-12 12:26:53

标签: web-services authentication web web-applications single-sign-on

对于使用不同后端堆栈开发的一组Web应用程序实施单点登录的最佳方法是什么,而不使用任何第三方服务而不将其删除。如何进行迁移?

1 个答案:

答案 0 :(得分:1)

  
      
  1. 要进行单点登录,您必须拥有相同的数据库表,其中包含所有Web应用程序的用户名/密码

  2.   
  3. 创建并部署一个Web服务,该服务具有两个参数username和password的登录方法。此方法对用户进行身份验证,并返回用户ID及其各自的角色和登录有效的时间。

         

    如果用户第一次进行身份验证,则更新该用户的有效时间   用户将保持身份验证的数据库。例如10天后   现在

         

    如果验证失败,登录方法应返回false

  4.   
  5. 在每个Web应用程序中,在webservice可调用方法中,如果用户登录成功,则创建一个cookie,该cookie应在validupto上过期   时间通过Web服务返回。根据服务器的时区调整cookie时间

  6.   
  7. 让我们猜测,用户是从web应用程序1验证的,并且创建的cookie在接下来的10天内不会过期   有效时间

  8.   
  9. 相同的用户打开未登录Web应用程序2的Web应用程序2。在这里你必须检查是否找到了登录cookie,如果没有,请调用webservice,

  10.         

    webservice将检查用户的validupto是否超过当前时间   从db中,它将返回用户ID和他各自的角色,直接验证时间而不检查用户的凭据   所以在这里,将基于webservice的有效时间返回创建cookie

         

    与Web应用程序1 cookie同时到期。因此,相同的用户将保持登录到Web应用程序1和2同时。

         

    Cookie过期后,用户将从两个Web应用程序注销。

         

    这样,您就可以使用任意数量的Web应用程序进行单点登录。

         

    注意:确保在所有调用webservices的Web应用程序中都有相同的功能,并根据Web服务响应创建cookie。

相关问题