`
udukwilliam
  • 浏览: 33629 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

统一身份证自定义协议(1)

 
阅读更多

在阅读本文前,需有一定的统一身份认证的知识,最好阅读或者使用过cas或者kerberos

1. 原理和协议

从结构上看,自定义协议包括SP、IDP Server和IDP Engine三部分(UA为浏览器)。其中IDP Server和IDP Engine独立部署,主要负责对用户进行认证,SP负责处理客户端受保护资源的访问请求,需要登录时,重定向到IDP Server。如下图所示:

 


 

 

                          图1. 协议图

 前提:IDP Engine是可信的,SP首先向ID Engine注册(名称以及默认的callbackURL),生成sp编号,该编号代表该sp;票据分为三种:sp票据、UA票据和agent票据

 

协议交互流程如下:

  • 1.   UA访问SP,SP判断该用户是否已经登录,如果没有登录,SP产生认证请求;如果用户已经登录,直接响应结果
  • 2.   SP重定向到IDP Server,URL带有AuthnRequest参数,如果已经登录,跳转到4;如果没有登录,返回登录页面,进行认证操作
  • 3.   UA产生认证请求,URL带有CredentialsRequest参数。IDP Server接收到认证请求后,首先判断请求的合法性。然后判断该用户是否已经成功单点登录(从cookie去得UA票据,如果票据不存在,则认为该用户未登陆过)。如果用户登录过,则为使用UA票据为该sp申请sp票据和agent票据,根据请求信息查询到响应URL,将sp票据写在url参数并重定向到该url,如果未登录过,则跳转到4
  • 4.   IDP Server将CredentialsRequest请求参数包装成Credentials向IDP Engine发出认证请求(IDP Server需要向IDP Engine认证自己的身份),如果认证通过,则申请相应票据: sp票据、UA票据和agent票据以及响应的URL
  • 5.  将UA票据写cookie
  • 6.  将sp票据写在响应URL参数,重定向到响应URL

2. 安全性

  • sp票据由IDP Engine用sp的密钥加密,只有sp能解密sp票据,保证了即使在网络传输过程被人截获也能保证用户信息的安全
  • agent票据由IDP Engine用IDP Server的密钥加密,只有IDP Server能解密agent票据,agent票据保存在IDP Server中
  • UA票据由IDP Engine进行非对称加密,用户的唯一标识,存在客户端
  • 单点时IDP Server需要能够获取到该票据进行验证

3. 设计实现

2.1数据交互方式

通过URL传递数据。

 

2.2参数格式

2.2.1. AuthnRequest

内容

 

由SP属性集合、callbackURL组成

注:CallbackURL不是必须,可以使用IDP Engine注册的默认callbackURL

 

格式

 

Sp属性集合

Sp编号:sp

元素之间以“;”分隔,key与value之间用“:”分隔

比如:sp:12345;authnReqID:abc123;sign:signValue

callbackURL:service

 

请求格式组成 req=请求属性格式&service=callbackURL

 

编码

Base64,在网络以Base64编码传输

 
2.2.2. CredentialsRequest

内容

由请求属性集合,签名组成

格式

l 请求的属性主要有:

1、身份(由用户名和域组成,格式: 用户名@域): principal

2、当前时间:time

3、票据类型:type

4、随机数标识:nonce

5、IDP Server代理:agent

6、引用: reference

7、sp编号:sp

格式:time:x;type:x;principal:x;nonce:x;agent:x;reference:x;sp:x

元素之间以“;”分隔,key与value之间用“:”分隔

l 签名,对请求属性用私有密钥加密生成密文,格式:

sign=加密算法:密文

私有密钥由用户名、域和密码 md5而成,格式

域 + ":" + 用户 + ":" + 密码

 

请求格式组成 req=请求属性格式&sign=签名&service=xxxx

编码

Base64,在网络以Base64编码传输

 上述自定义协议其实并不完全安全,你知道问题在哪么?

  • 大小: 19.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ireportJAVA报表中文帮助

    2. **样式与样式表**:可以自定义样式,如字体、颜色、边框等,也可以引用外部CSS样式表,实现报表的统一风格。 3. **子报表与分组**:子报表用于嵌套报表,分组则能按指定字段对数据进行分组展示,方便数据分析。 4...

    ISO7816-1-2-3等,iso7886-1,C,C++源码.zip

    这部分定义了卡片与读卡器之间的数据通信方式,包括T=0和T=1两种协议,它们定义了数据传输速率、错误检测和恢复机制。 ISO7816-3涉及到卡片的操作规程和命令集,包括卡片的初始化、选择应用、数据交换等操作。这...

    LDAP在linux上的部署与应用

    1. **目录服务概念**:LDAP是一种基于X.500标准的轻量级目录协议,用于提供快速查询和管理分布式目录信息。它以树形结构存储数据,便于查找和管理。 2. **LDAP架构**:主要包括三个主要组件——服务器(Directory ...

    36_酒店管理1

    1. 统一系统设置界面:所有系统参数设置在一个界面完成,包括客房设置、参数设置、常用选项、备注列表、房态颜色定义、会员与协议客户、仓库和商品管理等,提高了工作效率。 2. 个性化房态展示:系统允许自定义房态...

    饮食通《酒店管理系统》

    1、价格相对便宜,软件熟悉快,项目实施时间短,系统稳定维护少。 2、系统采用标准Windows图形界面,界面风格用户可以根据自己的爱好进行设置。整套系统风格统一,界面整洁美观,设计思路清晰、学习培训简单,操作...

    饮食通星级酒店管理系统

    1、价格相对便宜,软件熟悉快,项目实施时间短,系统稳定维护少。 2、系统采用标准Windows图形界面,界面风格用户可以根据自己的爱好进行设置。整套系统风格统一,界面整洁美观,设计思路清晰、学习培训简单,操作...

    公租房联网智能锁解决方案.docx

    房屋的具体地址和房间编号需要与公安系统登记的地址一致,以保证信息的统一性和准确性。 系统具备灵活的钥匙管理功能,支持延期、挂失、解挂、退卡/注销等操作。当钥匙被注销时,系统会发出警示信息,防止未授权的...

    智能图书管理系统实用.pdf

    1. 采访管理子系统:该子系统负责图书的采购过程,包括零星订购和批量采购。零星订购支持单独编辑订单,查询和修改订购数据,并具备基于Z39.50协议的检索功能,以确保图书信息的准确性。批订购则允许对同一征订目录...

    通用系统工具软件安防系统集成管理

    1. **识别硬件协议**:首先需要确定每种硬件设备所使用的通信协议,这可能包括TCP/IP、RS-485、CAN总线等。 2. **编写适配器程序**:根据不同的协议,编写相应的适配器程序,这些程序能够将硬件设备的数据转换成...

    正则测试小工具自带常用表达式

    5. **URL**:URL(统一资源定位符)是网页或网络资源的地址,包含协议、主机名、路径等部分。一个基本的URL正则表达式可能会很长,但通常会包括`http(s)://`、域名、路径和可能的查询参数。 6. **身份证号**:中国...

    Excel模板员工录用通知单.zip

    1. **基本信息**:包括员工的姓名、性别、出生日期、身份证号等个人信息,以及应聘职位、入职日期等与工作相关的具体信息。这部分旨在确保信息的准确无误。 2. **工作条款**:描述员工的工作职责、工作时间、工资...

    Excel表格+Word文档各类各行业模板-员工到职单.zip

    1. **Excel表格模板**: - Excel是一种强大的电子表格工具,适用于数据管理和分析。在员工到职流程中,Excel模板通常包括以下部分: - 基本信息:员工的姓名、性别、出生日期、身份证号、联系方式、家庭住址等。 ...

    跨浏览器控件SDK使用说明

    SDK的主要特点是提供了一个统一的接口,使得开发者可以在不同浏览器环境中使用高拍仪设备的功能。 **主要功能:** 1. **设备选择**:SDK允许用户在多个高拍仪设备之间进行选择。 2. **设备预览**:支持预览设备...

    ocf组件.zip,智能卡的操作利器!

    PC/SC接口是个人计算机与智能卡通信的一种国际标准,它定义了操作系统与智能卡读写器之间的通信协议,确保不同厂商的产品可以相互兼容。OCF组件实现了这一接口,为开发者提供了一个统一的、跨平台的访问层,使得开发...

    酒店管理软件|辰星酒店管理软件 星级版

    1、客户列表:记录客户的基本信息,包括客户姓名、性别及身份证等,建立客户档案,并可完成对其发卡操作; 2、客户分类:根据客户所属类别对客户进行分类,并可组合查询客户信息;通过增加、修改或删除等操作对客户...

    精易模块[源码] V5.15

    1、改善“网页_访问”、“网页_访问_对象”命令,添加默认协议头“Referer” 2、修复校正API正确申明后,“类_内存”不能使用的BUG。 3、改善“普通填表->单选框_取状态”参数2加入可空标志。 4、改善“字节集_还原...

    明日科技C#开发入门及项目实战

    实例002 统一窗体中控件的字体设置 实例003 设置程序代码行号 实例004 通过“格式”菜单布局窗体 实例005 为项目添加dll文件引用 实例006 为项目添加已有类 实例007 为项目添加第三方控件 实例008 为项目添加已有...

    VeryIDE Bee 互动营销**台 v1.5 UTF-8.rar

    修正 全部应用身份证号码验证失效(18位,去掉过时的15位)的问题,感谢 得意生活 提交问题 修正 随机广告在三条以上时同时展示多条广告的问题,感谢 暨阳社区 反馈问题 修正 免费版不能正常使用 Flash 幻灯广告的...

Global site tag (gtag.js) - Google Analytics