您好!欢迎来到betwayapp
当前位置:主页 > betwayapp >
SSO单点登录处理计划[转载]

  昨天和几位冤家评论辩论到了这个话题,发明固然单点登录,或许叫做自力的passport登录固然曾经有了很多完成方法,然则能真正了解并完成的人却其实不太多,所以些下此文,欲望从道理到完成,能让大年夜家了解的多一些

  至于甚么是单点登录,举个例子,假设你登录了msn messenger,访问hotmail邮件就不用在此登录。

  通俗单点登录都需求有一个自力的登录站点,通俗具有自力的域名,专门的停止注册,登录,注销等操作

  我们为了评论辩论便利,把这个登录站点叫做站点P,设其Url为http://passport.yizhu2000.com,需求供给效劳的站点设为A和B,跨站点单点登录是指你在A网站停止登录后,应用B网站的效劳就不需求再登录

  从技巧角度讲单点登录分为:

  所谓跨子域登录,A,B站点和P站点位于统一个域下面,比如A站点为http://blog.yizhu2000.com B站点为 http://forum.yizhu2000.com,他们和登录站点P的关系可以看到,都是属于统一个父域,yizhu2000.com,分歧的是子域分歧,一个为blog,一个为forum,一个是passport

  我们先看看最经常使用的非跨站点通俗登录的状况,通俗登录验证经事先,通俗会将你的用户名和一些用户信息,经过某一密钥停止加密,写在当地,也就是一个加密的cookie,我们把这个cookie叫做--票(ticket)。

  需求辨别用户可否登录的页面,需求读取这个ticket,并从个中解密出用户信息,假设ticket不存在,或许没法解密,意味着用户没有登录,或许登录信息不准确,这时候就要跳转到登录页面停止登录,在这里加密的感化有两个,一是防止用户信息被不怀好意者看到,二是保证ticket不会被捏造,后者其实更加主要,加密后,各个应用需求采取与加密异样的密钥停止解密,假设不知道密钥,就不能捏造出ticket,

  (注:加密和解密的密钥有能够分歧,取决于采取甚么加密算法,假设是对称加密,则为统一密钥,假设长短对称,就分歧了,通俗用私钥加密,公钥解密,然则不管如何,密钥都只要外部知道,如许捏造者既没法捏造也没法解密ticket)

  跨子域的单点登录,和上述通俗登录的过程没有甚么分歧,唯一分歧的是写cookie时,因为登录站点P和应用A处于分歧的子域,P站写入的cookie的域为passport.yizhu2000.net,而A站点为forum.yizhu2000.net,A在辨别用户登录时没法读到P站点的ticket

  处理方法十分复杂,当Login完成后P站点写ticket的时分,只需把cookie的域设为他们合营的父域,yizhu2000.net便可以了:cookie.domain="yizhu2000.net",A站点天然便可以读到这个ticket了

  ASP。Net的form验证自身完成了这个机制,大年夜家可以参考http://blog.csdn.net/octverve/archive/2007/09/22/1796338.aspx


上一篇:ipad怎么充不上电了

下一篇:没有了