`
javafan_303
  • 浏览: 958824 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sso详细设计说明书(下篇)转载(海纳百川文章http://www.cnblogs.com/David-weihw/a)

    博客分类:
  • sso
阅读更多
  本文是  单点登录系统(SSO)详细设计说明书(上篇)的续篇,为了更好地了解该系统请先阅读上篇


3.3
输入输出要求

解释各输入输出数据的类型,并逐项对格式、数值范围、精度等作出准确定义。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。

3.4 流程逻辑

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">      3.4.1</st1:chsdate>注册流程图

      <st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.4.2</st1:chsdate>
会员登录流程图

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">      3.4.3</st1:chsdate>
会员登出流程图      
         
            
          
    流程图使用Visio制作,浏览不方便。特别生产了HTML格式的文档,请从这里下载http://files.cnblogs.com/david-weihw/passport.rar,到本地查看。 


休息一下进广告:
 

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">      3.4.4</st1:chsdate> 会员修改密码流程图

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">       3.4.5</st1:chsdate> 会员找回密码流程图 

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">       3.4.6</st1:chsdate> 成员网站间跳转流程

          假设从成员网站A跳转到成员网站B,网站A提供网站B的入口链接即可。导航到网站B后,其流程与会员登录流程一样。

<script type="text/javascript"><!----></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-3677762604679039&amp;amp;dt=1195810849072&amp;amp;lmt=1195810849&amp;amp;prev_fmts=728x90_as&amp;amp;slot=1&amp;amp;format=728x90_as&amp;amp;output=html&amp;amp;correlator=1195810849072&amp;amp;channel=6912367067&amp;amp;url=http%3A%2F%2Fwww.cnblogs.com%2FDavid-weihw%2Farchive%2F2007%2F01%2F29%2F633436.html&amp;amp;ad_type=text_image&amp;amp;ref=http%3A%2F%2Fwww.cnblogs.com%2FDavid-weihw%2Farchive%2F2007%2F01%2F25%2F630621.html&amp;amp;cc=70&amp;amp;ga_vid=157724224.1195809345&amp;amp;ga_sid=1195809345&amp;amp;ga_hid=349500103&amp;amp;ga_fc=true&amp;amp;flash=9&amp;amp;u_h=864&amp;amp;u_w=1152&amp;amp;u_ah=830&amp;amp;u_aw=1152&amp;amp;u_cd=32&amp;amp;u_tz=480&amp;amp;u_his=1&amp;amp;u_java=true" frameborder="0" width="728" scrolling="no" height="90" allowtransparency="allowtransparency"></iframe>

3.5对性能的规定

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.5.1</st1:chsdate>精度 

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.5.2</st1:chsdate>灵活性

设计时需要充分考虑功能的扩展,使功能模块具有很强的灵活性。

灵活性因素:

a.操作方式上的变化;

b.运行环境的变化;

c.同其他软件的接口或其他软件对该模块的集成;

d.精度和有效时限的变化;

e.计划的变化或改进。 

3.6 数据管理

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.6.1</st1:chsdate>数据管理能力要求

说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求做出估算。比如,在数据库中设计中会员ID,若采用自增型变量要估算会员的数量级,确定采用(int)数据类型,还(bigint)数据类型。 

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.6.2</st1:chsdate>数据库设计(Passport服务器)

           1.Pass_Member(会员表) 

字段名称

数据类型

说明

备注

mPassID

Bigint

会员ID

自增型,PK(主键)

mName

Nvarchar(64)

会员名

Email作为会员名(创建索引

mPwd

Nvarchar(32)

会员密码

数据库中保存MD5运算的结果

mGBPwd

Nvarchar(32)

会员找回密码

会员找回密码时,生成的密码,会员激活后覆盖会员密码

mWake

Tinyint

会员唤醒

当和成员网站建立映射关系后,唤醒该会员

mMapWebsite

Nvarchar(128)

会员映射的成员站点

建立会员映射关系的成员网站串

mRegDT

Datetime

会员注册时间

 

mAreaCode

Nvarchar(8)

区域代号

 

mBack

Nvarchar(64)

预留字段

预留扩展

注意:成员网站的会员表,需要通过mPassID字段建立与Pass_Member表中会员的映射关系。

       备注:<st1:chsdate w:st="on" isrocdate="False" year="1960" day="20" islunardate="False" month="11">60-11-20</st1:chsdate>添加两个字段(红色高亮)

           2).Member_WebSite(成员网站表)

字段名称

数据类型

说明

备注

mWebID

int

成员网站ID编号

PK(主键)

mWebName

Nvarchar(32)

成员网站名称

 

mWebURL

Nvarchar(32)

成员网站URL

 

mWebIP

Nvarchar(16)

成员网站IP

 

mWebManager

Nvarchar(16)

成员网站管理员

成员网站故障时,便于维护

mWMTel

Nvarchar(16)

成员管理员电话

 

mBack

Nvarchar(64)

预留字段

预留扩展

      3).Member_Ticket(会员票据表)

字段名称

数据类型

说明

备注

mTicketID

Nvarchar(240)

验证票编码

PK(主键)

mPassID

Bigint

会员ID

FK(关联Pass_MembermPassID

issueDT

Datetime

票签发日期时间

 

availDT

datetime

票有效日期时间

 

digitalSign

Nvarchar(32)

票的数字签名

用于保证票的安全

mBack

Nvarchar(64)

预留字段

预留扩展

     

      4).Member_SignRecord(会员登录记录表)

字段名称

数据类型

说明

备注

ID

Bigint

记录ID

PK(主键)

mPassID

Bigint

会员ID

FK(关联Pass_MembermPassID

signinDT

Datetime

登录日期时间

 

signinWebID

int

登录网站ID编号

FK(关联Member_WebSite)

signoutDT

Datetime

登出日期时间

 

signoutWebID

int

登出网站ID编号

FK(关联Member_WebSite)

mBack

Nvarchar(64)

预留字段

预留扩展

     

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.6.3</st1:chsdate>数据处理

       创建作业

1、定时把验证票的记录导入的备份表中,供统计分析使用。

2、定时把一天以上没有激活的会员删除

3.7 Passport服务器与成员网站接口规范

<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12"><st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">      3.7.1</st1:chsdate> P</st1:chsdate>assport服务器入口及调用接口

           a.注册入口

            重定向规范:

       成员网站注册重定向地址:http://passport.david.cn/register.aspx

        成员网站入口参数:AppID                成员网站ID

                                      Redirect                         Passport重定向地址

 

        Passport回传参数: Ticket                           cookie验证票加密串

                                          PassID                         会员ID

                                          UserName                    会员名称(Email)

        举例:

              假设AppID=1Redirect=http://www.woall.com/index.aspx

                      Ticket= 53D2FD484DC6FAD75E82 UserName=david@gmail.com

                      PassID=1234

              成员网站重定向地址为:

http://passport.david.cn/register.aspx?AppID=1&Redirect=http://www.woall.com/register.aspx

                    

                     Passport重定向地址为:

http://www.woall.com/index.aspx?Ticket=53D2FD484DC6FAD75E82&PassID=1234&UserName=david@gmail.com

             

             

              Web Service通信规范:

              若用户从成员网站A重定向到Passport服务器注册会员时,Passport调用成员网站Web Service接口,建立Passport数据库与网站A数据库中会员的关联,关联字段为Pass_Member表中的mPassID

              Web Service名称: pass_user_related

              所有者:成员网站

              调用者:Passport服务器

              输入参数PassID:字符串,表示会员ID                        

              输出参数:Flag:布尔型,表示是否成功建立关联

 

              b.登录接口

              验证cookieWeb Service规范:成员网站本地域存在cookie验证票时,使用的接口。

              Web Service名称:web_ticket_auth

              所有者:Passport服务器

              调用者:成员网站

              输入参数:TicketCode 字符串   验证票字符串

                             AppID        字符串 成员网站ID

             

              输出参数:Flag:布尔型,表示验证票是否合法

              验证逻辑:只要数据库中存在该验证票,且在有效期内,即合法。

      

              HTTP[本接口改为了重定向的方式,请参考下面的部分] 请求通信接口规范:成员网站域不存在cookie验证票,查看Passport域是否存在。

              Passpport提供的URLhttp://passport.david.cn/pass_ticket_exist.aspx

              输入参数:无

              输出参数:XML格式的文本(符合RSS2.0标准),XML包含节点

                            Flag:表示是否存在合法的验证票

Ticket:表示验证票字符串

PassID:表示会员ID

UserName:表示Email地址

 

备注:Http请求,从成员网站域,向Passport域发送请求时,并不能访问到在Passport域中向客户端写的cookie值。现改成重定向的方式

       重定向接口规范:

              Passport提供的重定向地址:http://passport.david.cn/pass_ticket_exist.aspx

              输入参数:Redirect    字符串  Passport重定向到成员网站的地址

                    AppID       字符串   成员网站ID

         回传参数:Ticket       字符串   验证票编号

                    PassID       字符串   会员ID

                    UserName     字符串   会员名称

 

     举例:

              假设: Redirect= http://www.woall.com/Public/Login_State.aspx

                                    AppID=1

                                    

                                   Ticket=53D2FD484DC6FAD75E82

                                   PassID=1234

                                   UserName= david@gmail.com

 

                            则:则 成员网站重定向地址为:

http://passport.david.cn/pass_ticket_exist.aspx?AppID=1&Redirect=http://www.woall.com/Public/Login_State.aspx

                                  

                                   Passport重定向地址为:

http://www.woall.com/Public/Login_State.aspx? Ticket=53D2FD484DC6FAD75E82&PassID=1234&UserName=david@gmail.com

 

 

              登录框提交接口规范:成员网站输入Email和密码提交到Passport的地址。

              提交到Passport的地址:http://passport.david.cn/pass_login.aspx

              成员网站入口参数:Email                会员名

                                           Pwd                  会员密码

                                           AppID               成员网站ID

                                           Redirect             Passport重定向地址

 

       Passport回传参数: Ticket               字符串,cookie验证票加密串

                                             PassID             字符串,会员ID

                                             UserName        字符串,会员名称(Email)

Flag               登录成功与否标识 2-成功(会员存在)3-失败(会员名不存在)4-密码不正确,5-数据库错误

              举例:

                     假设:Passport重定向地址为http://www.woall.com/default.aspx

                     则,Passport服务器重定向到成员网站的地址是

http://www.woall.com/default.aspx?Ticket=53D2FD484DC6FAD75E82&PassID=1234&UserName=david@gmail.com&Flag=1

 

 

              c.登出接口

              重定向规范:

              成员网站登出重定向地址:http://passport.david.cn/Public/logout.aspx

              成员网站入口参数:AppID        字符串,成员网站ID

                                           Ticket         字符串,cookie验证票

                                           Redirect      字符串,Passport重定向地址

 

Passport回传参数: Flag           字符串,1-表示成功从Passport登出;0-票不合法;-1-失败(数据库错误)

                                               

              举例:

              假设AppID=1Redirect=http://www.woall.com/index.aspx

                      Ticket= 53D2FD484D

                      Flag=1

              则,成员网站重定向到Passport的地址为

http://passport.david.cn/Public/logout.aspx?AppID=1&Ticket=53D2FD484D&Redirect=http://www.woall.com/index.aspx

 

                            Passport服务器重定向到成员网站的地址为:

http://www.woall.com/index.aspx?Flag=1

 

              d.修改密码接口

              重定向规范:

              成员网站修改密码重定向地址:http://passport.david.cn/Public/pwd_mod.aspx

              成员网站入口参数:AppID        字符串,成员网站ID

                                           Ticket         字符串,cookie验证票

                                           Redirect      字符串,Passport重定向地址

 

       Passport回传参数: Flag    字符串,1-成功;0-验证票不合法;-1-数据库错误

             

              举例:

              假设AppID=1Redirect=http://www.woall.com/index.aspx

                      Ticket= 53D2FD484D

                      Flag=1

              则,成员网站重定向到Passport的地址为

http://passport.david.cn/Public/pwd_mod.aspx?AppID=1&Ticket=53D2FD484D&Redirect=http://www.woall.com/index.aspx

 

                            Passport服务器重定向到成员网站的地址为:

http://www.woall.com/index.aspx?Flag=1


 

 

       e.找回密码接口

       重定向规范:

       成员网站找回密码重定向地址:http://passport.david.cn/Public/getback_pwd.aspx

              成员网站入口参数:AppID        字符串,成员网站ID

                                           Ticket         字符串,cookie验证票

                                           

Passport回传参数: Passport服务器发送密码激活地址(其中有验证票字符串)到会员邮箱,供激活密码。

                                             激活地址:

http://passport.david.cn/pwd_awake.aspx?Ticket=53D2FD484D

              举例:

              假设AppID=1Ticket= 53D2FD484D

                      

              则,成员网站重定向到Passport的地址为

http://passport.david.cn/getback_pwd.aspx?AppID=1&Ticket=53D2FD484D

                    

3.8故障处理要求

列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。

 

3.9其他专门要求

如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。

 

4、运行环境规定

4.1设备

列出运行该软件所需要的硬设备。

说明其中的新型设备及其专门功能,包括:

a.处理器型号及内存容量;

b.外存容量、联机或脱机,设备的型号及数量;

c.输入及输出设备的型号和数量,联机或脱机;

d.数据通信设备的型号和数量;

e 功能键及其他专用硬件

 

4.2支持软件

           暂时不采用第三方插件或其它软件。

 

 

4.3控制

说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。

总结
               按照系统的说明书,本人已经实现了该系统,并且实施过程的修改都作了说明。
      平台环境:
                        1、win2003, IIS6.0, MS SQL 2000,VS.NET  C# 1.1 
                        2、wind2003,Apache2.2.4, MySql5.0, PHP5.1 
              
     重点:
        验证票的生成,在各个网站所在的域中共享验证票,验证票的安全(3DES,数字签名,验证票时间戳)


关键词
  单点登录系统, 单一登录系统, SSO系统, cookie验证票,IPO表, Visio,3DES加密,数字签名 MD5,Web Service
                 
分享到:
评论

相关推荐

    CentOS-7-x86_64-Everything-1804 VMware workstation12

    centos7.0 sso下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1804.iso 方案二: centos7.0已经做好的镜像(包含图形化): 链接:...

    单点登录实

    单点登录(Single Sign-On,简称SSO)是一种常见的身份管理技术,它允许用户通过一次登录即可访问多个应用系统,无需在不同的应用系统之间重复登录。这种机制极大地提高了用户体验,并且在一定程度上增强了系统的...

    Android代码-CAS_SSO_Record

    CAS SSO 单点登录记录 作者:刘仁奎 个人网址 程序喵:http://www.ibloger.net / http://www.chengxumiao.net 程序员购书导航指南:http://books.chengxumiao.net QQ:1056856191 GitHub地址:...

    SSO.zip_http://sso.sto-expr_killer_sso

    "Screen saver killer.exe"是描述中的关键内容,它是一种程序,设计用来防止屏幕保护在特定条件下启动。这通常是为了保持用户的会话活跃,特别是在无人看管的系统上,例如在共享的工作站或者需要持续运行的应用场景...

    单点登录源码

    AliOSS & Qiniu & QcloudCOS | 云存储 | [https://www.aliyun.com/product/oss/](https://www.aliyun.com/product/oss/) [http://www.qiniu.com/](http://www.qiniu.com/) [https://www.qcloud.com/product/cos]...

    API SpringBoot + Shiro + Java-Jwt + Redis(Jedis).zip

    Herottps: //github.com/wang926454/VueStudy/tree/master/VueStudy08-JWT问题#14 重复请求会不会生成多个token#19 跨域sso问题#29 Token刷新并发处理有疑问请扫码加QQ群交流779168604项目相关Java文档...

    cas统一身份认证sso

    统一身份认证-CAS配置实现 SSO单点登录Spring-Security+&+CAS+使用手册 统一身份认证-CAS配置实现 CAS登录验证(密码MD5、SHA加密后_再进行Base64加密实现代码)_与Liferay的用户身份验证对应

    Python-票根网psstxffpcom的发票批量下载和批量开票

    在这个场景下,你需要登录票根网并模拟用户行为,例如获取发票列表、下载发票等。这可能涉及设置cookies、session和header,以便服务器识别你的身份和会话状态。 接下来,文件I/O操作是保存和读取发票数据的重要...

    淘淘商城-SSO接口.docx

    ### 淘淘商城单点登录(SSO)接口解析 #### 一、概述 随着互联网技术的发展,用户体验逐渐成为衡量一个网站或应用成功与否的重要标准之一。为了提高用户体验,简化用户的登录过程,单点登录(Single Sign-On,简称...

    PyPI 官网下载 | incuna-auth-7.4.0.tar.gz

    "incuna-auth-7.4.0.tar.gz"是PyPI上发布的一个Python库的压缩文件,其版本号为7.4.0,我们来详细了解一下这个库及其使用方法。 "incuna-auth"是一个专门针对身份验证和授权的Python库,由Incuna公司开发并维护。这...

    CAS单点登录HTTP协议版本配置指南

    - 进入部署CAS服务端的Tomcat的`conf`目录下,编辑`service.xml`文件,主要配置如下: ```xml &lt;Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="gbk"/&gt; ...

    simple-sso-master.zip

    单点登录示例代码simple-sso-master,包括单点登录服务端、单点登录客户端、两个业务子系统a\b,请结合博客学习:https://www.cnblogs.com/cac2020/p/13716521.html

    JAVA Use Case

    在B2B环境下,Java的使用通常与构建中间件、数据库交互、Web服务、安全机制和数据交换格式等有关。 首先,Java字符串不可变性是一个需要深入理解的知识点。在Java中,字符串(String)是不可变的,这意味着一旦一个...

    2022最新IntellJ IDEA的zheng开发部署文档.doc

    4. **MySQL**(5.6.10):数据库服务器,详细步骤可在 https://www.cnblogs.com/liuyangfirst/p/15997667.html 找到。 5. **Redis**(5.0.10):内存数据存储,具体配置可参考 ...

    java微博模拟登陆+图片上传微博图床

    String params = "entry=sso&gateway=1&from=null&savestate=30&useticket=0&pagerefer;=&vsnf=1&su;=" + base64name; params += "&service=sso&sp;=" + password + "&sr=1920*1080&encoding=UTF-8&cdult=3&domain...

    Phpcms X (原PHPCMS)长期维护版

    PHPCMS X 的重点是保留所有官方原版程序中各功能不变的基础上,进行了全面的安全漏洞修补、BUG修正、和部分代码的优化完善,使其能更安全稳定的运行于当前大部分服务器环境下; 同时我们提供长期持续稳定的程序更新...

    spring boot 实现SSO单点登陆

    1、配置本地hosts 127.0.0.1 sso-login 127.0.0.1 sso-resource ...2、先后启动SsoServer、sso-resource、sso-client1、sso-client2 3、访问http://sso-taobao:8083/client1/ 或 http://sso-tmall:8084/client2/

    金蝶EAS portal单点登录到SHR文档

    金蝶EAS portal单点登录到SHR文档提供了详细的实施指南,指导开发者和实施人员快速实现s-HR单点登录集成。 1.1 什么是单点登录? 单点登录是指用户只需要输入一次用户名和密码,即可访问多个相关的应用系统,而不...

Global site tag (gtag.js) - Google Analytics