ASP.NET MVC SSO单点登录设计与实现
单点登录:
单点登录全程为Single Sign On(简称SSO),是指多个系统通过一个用户授权中心处理,便可以在其他所有系统中得到授权而无需再次登录;实现方式有很多种,下面这个示例是通过cookie方式来实现的一个SSO。
相对于单系统登录,SSO需要一个独立的认证中心,只有认证中心能接受用户的用户名和密码等安全信息,其他系统不提供登录入口。
假如现在有多个系统进行集成,并且通过单点登录来进行管理,流程如下:
a) 用户访问系统1,系统1发现用户没有登录跳转至SSO认证中心并将自己的地址作为参数传输。
b) SSO认证中心发现用户为登录,将用户引导至登录页面。
c) 用户输入用户名和密码提交登录申请。
d) SSO校验用户信息,如验证通过将保存用户信息Cookie并跳转至最初的请求地址。
e) 当系统2去登录时,系统将跳转至认证中心,验证是否登录,已经登录,跳转至最初请求的地址。
每次在博客园登录的时候可以看到
https://passport.cnblogs.com/user/signin?ReturnUrl=http://i.cnblogs.com/EditPosts.aspx?opt=1
然后登录之后跳转的URL为ReturnURL
以后在各大网站登录的时候可以稍微注意一下,好多地方都会用到这个功能。
下面是该SSO使用过程:
源代码下载路径:https://github.com/zhaochengshen/SSO