统一协同工做平台用户管理、单点登陆以及任务集成接口说明

  1 概述
  
  西北油田分公司信息化通过长期建设,在各个业务点上,逐步搭建了适应业务管理的信息化系统,为分公司经营管理提供了强大的信息化辅助管理支撑。 可是,分公司前期建设的信息化系统都是基于传统办公自动化OA,目前逐步造成了多个单独业务系统组成的OA,如公文、合同、招投标、预结算等系统,这些系统之间没有统一的技术和数据标准,数据不能自动传递和共享,流程控制和标准多样化,从而造成了一个个彼此隔离的信息孤岛。
  
  在此背景上,西北油田分公司搭建了一套整合分公司各类信息资源库的协同工做平台,造成统1、综合、开放的办公应用平台。
  
  本文档为西北油田分公司内部应用系统接入统一的协同工做平台提供指导,提供应用系统接入统一用户管理平台、实现单点登陆和统一任务集成的接口说明。
  
  2 单点登陆实现
  
  2.1 原理概述
  
  单点登陆系统提供统一的认证页面、统一的当前用户加密和解密服务。
  
  用户经过统一认证页面登陆系统,当用户须要访问企业内部应用系统时,单点登陆加密当前用户身份跳转至指定的应用系统,指定应用系统获取到当前加密身份后,经过调用单点登陆服务进行解密,获取到用户真实身份进行认证。
  
  当统一认证页面采用Windows认证模式时,那么一样采用Windows认证模式的应用系统,必须部署在同一应用程序池下,对于其余非Windows认证的系统,将采起上述加密跳转的方式。
  
  图:应用系统单点登陆实现过程
  
  2.2 统一认证页面
  
  由单点登陆系统提供,使用统一用户管理平台的帐号和密码进行验证。用户访问企业内网门户或应用系统时,若是检测到未登陆,则跳转至统一认证页面,用户登陆后,再跳转至用户访问的页面。
  
  统一认证页面地址:http://10.16.0.168/Portal/Login.aspx
  
  统一认证页面输入输出参数以下
  
  应用系统未认证时,跳转至统一认证页面,输入参数:
  
  编码
  
  输入方式
  
  描述
  
  SystemCode
  
  Get/post
  
  系统编码,由单点登陆系统提供指定的编码,每一个应用系统惟一,输入为空时,跳转至默认的门户页面
  
  URL
  
  Get/post
  
  登陆成功后,跳转到的应用系统URL,输入为空时,跳转至默认的门户页面
  
  统一认证完成后,跳转至应用系统指定URL,输出参数:
  
  编码
  
  输入方式
  
  描述
  
  Token
  
  Get
  
  一次有效的验证Token,调用单点登陆服务,能够获得当前用户的真实信息
  
  2.3 单点认证服务
  
  单点认证服务是提供给企业应用系统进行登陆验证的服务,企业应用系统获取到Token后,以本身对应单点登陆的SystemCode和Secret值,进行调用单点登陆服务,解析获得统一平台的用户登陆信息。
  
  服务地址:http://10.16.0.168/SSO.asmx
  
  单点认证服务提供2个WebService服务接口:
  
  ü 获取统一认证平台用户帐号接口
  
  接口名称
  
  GetAuthenticationUser
  
  接口说明
  
  获取已登陆统一认证平台的用户帐号
  
  输入参数
  
  参数编码
  
  类型
  
  说明
  
  SystemCode
  
  String
  
  传入系统编码
  
  Secret
  
  String
  
  传入系统秘钥
  
  Token
  
  Stirng
  
  登陆信息
  
  输出参数
  
  类型
  
  说明
  
  String
  
  返回当前已登陆统一认证系统的登陆帐号
  
  ü 更改Secret接口
  
  接口名称
  
  UpdateSecret
  
  接口说明
  
  更改统一认证Secret信息
  
  输入参数
  
  参数编码
  
  类型
  
  说明
  
  SystemCode
  
  String
  
  传入系统编码
  
  Secret
  
  String
  
  传入旧的系统秘钥
  
  NewSecret
  
  Stirng
  
  传入新的Secret信息
  
  输出参数
  
  类型
  
  说明
  
  bool
  
  返回更改Secret值是否成功
  
  3 应用系统单点登陆接入
  
  3.1 获取系统编码
  
  系统编码是由单点登陆服务提供的系统编码和解密秘钥。
  
  编码
  
  名称
  
  说明
  
  SystemCode
  
  系统编码
  
  文本类型,系统编码、企业内部惟一,不可变动
  
  Secret
  
  解密秘钥
  
  文本类型,调用解密服务须要传入的参数,能够调用单点登陆服务修改
  
  如下是各应用系统编码,Secret可调用接口(参考3.4.4章节)自行修改:
  
  系统名称
  
  SystemCode
  
  Secret
  
  电子考勤系统
  
  DZKQ
  
  DZKQ
  
  生产经营系统
  
  SCJY
  
  SCJY
  
  招投标系统
  
  ZTB
  
  ZTB
  
  无纸化会议
  
  WZHHY
  
  WZHHY
  
  领导动态
  
  LDDT
  
  LDDT
  
  3.2 统一登陆页面
  
  注:该功能为预留使用,本期项目能够不实现,应用系统只须要作好单点登陆,仍然可保留已有的登陆界面,让用户便可从统一平台登陆界面进行登陆系统,也能够从已有的系统登陆界面进行登陆系统。
  
  统一单点登陆页面URL:http://10.16.0.168/Portal/Login.aspx
  
  当用户请求页面,而且未登陆时,统一跳转至单点登陆服务提供的登陆页面地址,
  
  http://10.16.0.168/Portal/Login.aspx?q={URL}&SystemCode={SystemCode}
  
  参数说明
  
  编码
  
  名称
  
  说明
  
  URL
  
  应用系统URL
  
  单点登陆成功后跳转到应用系统的URL地址
  
  SystemCode
  
  系统编码
  
  单点登陆系统编码
  
  示例:当前应用系统编码是SCJY,用户请求的页面URL为:http://192.0.0.1/Default.aspx,
  
  则跳转至:
  
  http://10.16.0.168/Portal/Login.aspx?q= http://192.0.0.1/Default.aspx&SystemCode=SCJY
  
  3.3 系统间单点登陆跳转
  
  系统之家的单点登陆实现,都须要经过统一登陆页面进行实现,例如A系统访问B系统的 Default.aspx页面,则须要使用:http://10.16.0.168/Portal/Login.aspx?q=http://B/Default.aspx。
  
  3.4 应用系统单点登陆实现过程
  
  3.4.1 单点登陆过程
  
  本章节描述了应用系统对于单点登陆须要作的事情和过程。
  
  应用系统从URL中获取到Token值,经过SystemCode和Secret调用单点登陆服务,解析获得用户的统一用户管理平台中的帐号,在本系统实现登陆验证。
  
  单点登陆须要支持的页面:全部在统一平台中须要加上连接的页面和表单界面。
  
  以上页面中,在判断当前系统用户登陆认证以前,按照如下步骤进行:
  
  1. 若是URL中有Token值,则进入3,不然进入2
  
  2. 跳转至本系统的登陆界面;
  
  3. 调用单点登陆服务进行解密,获得用户的真实帐号;
  
  4. 使用解密获得的帐号自动进行本系统登陆认证,完成单点登陆;
  
  3.4.2 单点登陆界面说明
  
  本期项目如下功能须要实现单点登陆:
  
  系统名称
  
  集成功能
  
  公文管理系统
  
  公司发文、公司收文、公司工做联系单、公司会议记要审批件流转、部门发文、流程审核表单
  
  合同管理系统
  
  合同查询、合同台帐、流程审核表单
  
  招投标系统
  
  招投标流程运行监控、项目运行监控、招标会议安排招标项目台帐、评标专家维护、流程审核表单
  
  生产经营管理系统
  
  业务跟踪查询、流程审核表单
  
  电子考勤系统
  
  考勤管理、特殊考勤申请、考勤记录查询、流程审核表单
  
  无纸化会议系统
  
  会议室使用状况、无纸化会议申请、会议材料上传、流程审核表单
  
  领导动态
  
  行程动态登记、行程动态查询
  
  内控管理系统
  
  部门控制目标、内控手册查询、内控全文索引
  
  电子邮件系统
  
  未处理邮件数提醒
  
  注:请各应用系统将以上功能的测试环境和正式环境的URL访问地址,提供给信息化管理中心董小诗。
  
  3.4.3 获取Token
  
  从统一认证平台跳转至应用系统时,统一认证平台会将当前的用户加密信息以Get方式进行发送至应用系统。
  
  例如:应用系统URL地址http://192.0.0.1/Default.aspx,统一认证平台返回的URL地址为
  
  http://192.0.0.1/Default.aspx?Token={Token}
  
  参数说明
  
  编码
  
  名称
  
  说明
  
  Token
  
  访问的Token
  
  一次性使用,能够经过单点登陆服务获得真实帐号
  
  注:每次登陆Token值只一次有效。
  
  3.4.4 获取应用系统用户帐号
  
  应用系统获取Token后,调用单点登陆服务提供的解密服务,获得真实帐号,单点登陆服务以WebService方式提供。
  
  接口名称
  
  GetAuthentica www.juhongyulept.com tionUser
  
  接口说明
  
  获取已登陆统一认证平台的用户帐号
  
  输入参数
  
  参数编码
  
  类型
  
  说明
  
  SystemCode
  
  String
  
  传入系统编码
  
  Secret
  
  String
  
  传入系统秘钥
  
  Token
  
  Stirng
  
  登陆信息
  
  输出参数
  
  类型
  
  说明
  
  String
  
  返回当前应用系统的用户帐号
  
  应用系统获取到返回当前应用系统的用户帐号后,须要进行本系统的登陆操做。
  
  3.4.5 更改Secret信息
  
  为了安全考虑,Secret值能够根据应用系统须要进行请求修改。修改过程调用统一单点登陆服务进行完成。
  
  单点登陆系统提供接口以下:
  
  接口名称
  
  UpdateSecret
  
  接口说明
  
  更改统一认证Secret信息
  
  输入参数
  
  参数编码
  
  类型
  
  说明
  
  SystemCode
  
  String
  
  传入系统编码
  
  Secret
  
  String
  
  传入旧的系统秘钥
  
  NewSecret
  
  Stirng
  
  传入新的Secret信息
  
  输出参数
  
  类型
  
  说明
  
  bool
  
  返回更改Secret值是否成功
  
  3.4.6 提供系统用户表
  
  若是应用系统不是使用AD域帐号,而且本系统用户没有与AD用户对应的用户关系映射表,那么须要作2个事情:
  
  1. 对于已有的系统用户,导出系统用户清单提供给统一平台,导出格式为:
  
  所属组织
  
  用户姓名
  
  当前系统帐号
  
  2. 对于新增用户(不在系统用户清单的用户),严格使用AD帐号,不然不能正常单点登陆。
  
  3.5 统一用户管理集成
  
  注:若是应用系统组织和用户不须要从AD作同步,仍然能够采起已有的方式进行维护,能够忽略此章节。
  
  企业应用系统用户管理必须以统一用户管理平台提供数据为基础,系统定时或者管理员手动从统一用户管理平台进行同步。
  
  使用统一用户管理后,应用系统不须要再从本系统进行维护组织和系统帐号,全部系统帐号建立、删除权在统一用户管理平台,应用系统须要实现从该平台进行组织同步。
  
  统一用户管理平台提供组织、用户的数据接口,企业应用系统能够经过接口进行同步数据。
  
  3.5.1 统一用户管理数据结构
  
  ü 组织数据结构(OrganizationUnit)
  
  字段名称
  
  类型
  
  说明
  
  ObjectID
  
  字符串
  
  组织ID,惟一标示
  
  Code
  
  字符串
  
  组织编码
  
  Name
  
  字符串
  
  组织名称
  
  ParentID
  
  字符串
  
  上级组织ID,若是为空,则表示是顶层组织
  
  ManagerID
  
  字符串
  
  组织经理的用户ID,关联用户ObjectID
  
  ModifiedTime
  
  日期
  
  组织最后修改日期
  
  State
  
  整数类型
  
  启/禁用,0表示启用,1表示禁用
  
  ü 用户数据结构
  
  字段名称
  
  类型
  
  说明
  
  ObjectID
  
  字符串
  
  用户ID,惟一标示
  
  Code
  
  字符串
  
  编码、AD帐号
  
  Name
  
  字符串
  
  姓名
  
  Appellation
  
  字符串
  
  称谓
  
  EmployeeNumber
  
  字符串
  
  员工工号
  
  ParentID
  
  字符串
  
  所属组织ID,关联组织ObjectID
  
  ManagerID
  
  字符串
  
  上级经理ID,关联用户表ObjectID
  
  Mobile
  
  字符串
  
  用户手机号码
  
  Email
  
  字符串
  
  用户邮箱号码
  
  OfficePhone
  
  字符串
  
  办公电话
  
  State
  
  整数类型
  
  启/禁用,0表示启用,1表示禁用
  
  ModifiedTime
  
  日期
  
  修改日期
  
  3.5.2 统一用户管理平台接口
  
  ü GetCompany()
  
  方法说明:获取根目录的组织架构信息
  
  输入参数
  
  参数名称
  
  类型
  
  说明
  
  无
  
  返回值
  
  类型
  
  说明
  
  OrganizationUnit
  
  组织机构对象
  
  ü GetAllOrganizationUnit()
  
  方法说明:获取全部组织数据
  
  输入参数
  
  参数名称
  
  类型
  
  说明
  
  无
  
  返回值
  
  类型
  
  说明
  
  OrganizationUnit[]
  
  组织机构数组
  
  ü GetAllUser()
  
  方法说明:获取全部用户数据
  
  输入参数
  
  参数名称
  
  类型
  
  说明
  
  无
  
  返回值
  
  类型
  
  说明
  
  User[]
  
  用户数组
  
  4 统一任务集成
  
  4.1 集成说明
  
  统一任务集成平台是西北油田分公司全部应用系统的待办任务综合处理平台,全部应用系统待办都接入统一任务集成平台处理。用户能够直接登陆该平台,处理分散在全部系统中的任务。
  
  因此咱们须要全部应用系统将用户待办/待阅任务能即时推送至统一任务集成平台,而且和统一任务集成平台实现单点登陆,方便用户进行操做。
  
  基于移动扩展考虑,而且展现统一移动模式表单,应用系统还须要提供表单数据接口和表单操做接口,方便统一任务集成平台实现移动扩展。
  
  统一任务集成过程以下图所示:
  
  4.2 统一任务集成接口说明
  
  接口服务地址:http://www.luleu99.com10.16.0.168/Portal/WorkItemService.asmx
  
  ü 接口名称:AddUnFinishedWorkItem
  
  方法说明:应用系统推送待办任务至统一任务集成平台
  
  参数说明:
  
  输入参数
  
  参数名称
  
  类型
  
  说明
  
  SystemCode
  
  string
  
  系统编码,由SSO服务提供
  
  Secret
  
  string
  
  系统秘钥,由SSO服务提供
  
  ID
  
  string
  
  应用系统工做任务惟一标示
  
  WorkflowName
  
  string
  
  流程模板名称:如请假申请、发文审批
  
  InstanceName
  
  string
  
  流程实例名称:例如张三的年假审批
  
  ActivityName
  
  string
  
  环节名称:例如领导审批
  
  Originator
  
  string
  
  发起人帐号:流程发起人的中石化邮箱帐号
  
  Participant
  
  string
  
  当前任务处理人的中石化邮箱帐号
  
  ReceiveTime
  
  Datetime
  
  任务接收时间
  
  PriorityType
  
  PriorityType
  
  枚举类型,待办的优先级
  
  Low = 0, // 低
  
  Normal = 1, // 中(默认值)
  
  High = 2 // 高
  
  ItemType
  
  int
  
  待办/待阅,0是待办/1是待阅
  
  AllowReject
  
  Bool
  
  是否容许驳回
  
  MobileProcessing
  
  Bool
  
  是否容许移动办公审批
  
  业务系统本身断定,当存在复杂操做的表单逻辑和操做时,能够设置不支持在移动端操做,例如发起环节的填写。
  
  Url
  
  string
  
  应用系统打开当前工做任务的URL
  
  返回值
  
  类型
  
  说明
  
  bool
  
  任务推送是否成功
  
  示例程序
  
  // 调用一个任务推送,将任务ID=12345的任务推送至统一任务集成平台
  
  bool result = workItemService.AddUnFinishedWorkItem(
  
  "系统编码",
  
  "系统秘钥",
  
  "12345", // 应用系统的任务ID
  
  "请假申请",
  
  "张三的事假申请",
  
  "主管审核",
  
  "zhangs.xbsj",
  
  "wangw.xbsj",
  
  new DateTime(2015, 10, 31, 12, 21, 05),
  
  PriorityType.Normal,
  
  0,
  
  "http://10.1.0.100/System/ www.jimeiyulept.com Apply.aspx?ID=12345"
  
  );
  
  ü 接口名称:FinishWorkItem(string SystemCode,string Secret,string ID)
  
  方法说明:应用系统任务完成时,通知统一任务平台
  
  参数说明:
  
  输入参数
  
  参数名称
  
  类型
  
  说明
  
  SystemCode
  
  string
  
  系统编码,由SSO服务提供
  
  Secret
  
  string
  
  系统秘钥,由SSO服务提供
  
  ID
  
  string
  
  待办任务在应用系统中的惟一标示
  
  返回值
  
  类型
  
  说明
  
  bool
  
  统一任务处理平台调用是否成功
  
  4.3 应用系统须要提供接口说明
  
  在PC端,统一任务集成平台经过单点登陆直接打开应用系统表单URL,全部操做均由应用系统完成。
  
  在移动端,统一任务集成平台经过获取应用系统表单数据,统一转换成移动办公模式表单进行展现,用户直接使用转换后的移动办公表单进行任务操做,因此应用系统须要向统一任务集成平台提供表单数据接口和表单操做接口。
  
  4.3.1 移动端表单数据集成接口
  
  应用系统须要构造接口返回数据结构,以WebService形式提供给统一任务集成平台进行调用。也就是说,以统一任务集成平台的提供数据结构,构造SheetData[]数组,返回给统一任务集成平台使用。
  
  接口说明:统一使用名称 LoadSheetData
  
  输入参数
  
  字段名称
  
  类型
  
  说明
  
  Token
  
  string
  
  统一平台会调用SSO加密服务将结果传递至应用系统,应用系统再调用解密服务验证Token值的真实有效性,而后进行处理。
  
  ID
  
  string
  
  任务惟一标示
  
  输出参数
  
  类型
  
  说明
  
  SheetData[]
  
  表单数据数组,参考统一任务集成平台提供的数据结构
  
  SheetData结构说明
  
  字段名称
  
  类型
  
  说明
  
  DisplayName
  
  string
  
  表单数据项的显示标题
  
  DisplayValue
  
  string
  
  表单数据项的显示值
  
  Editable
  
  bool
  
  当前数据项是否容许编辑
  
  RowIndex
  
  int
  
  数据项所在的行号索引,只对子表有效
  
  ParentDisplayName
  
  string
  
  父数据项显示标题,只对子表数据项有效
  
  例如:采购明细表中有一个字段是商品编码,那么返回商品编码字段时,ParentDisplayName的值就是采购明细表
  
  SheetData定义示例:
  
  public class SheetData
  
  {
  
  public SheetData() { }
  
  /// <summary>
  
  /// 获取或设置数据项的显示标题
  
  /// </summary>
  
  public string DisplayName { get; set; }
  
  /// <summary>
  
  /// 获取或设置数据项的显示值
  
  /// </summary>
  
  public string DisplayValue { get; set; }
  
  /// <summary>
  
  /// 获取或设置数据项是否可编辑,默认值请设置为False
  
  /// </summary>
  
  public bool Editable { get; set; }
  
  /// <summary>
  
  /// 获取或设置数据的行号
  
  /// </summary>
  
  public int RowIndex { get; set; }
  
  /// <summary>
  
  /// 获取或设置父级数据项的显示名称
  
  /// </summary>
  
  public string ParentDisplayName { get; set; }
  
  }
  
  返回数据示例:
  
  [WebMethod]
  
  public List<SheetData> LoadSheetData(string Token, string ID)
  
  {
  
  // TODO:验证 Token 是否正确
  
  List<SheetData> sheets = new List<SheetData>();
  
  // 添加文本类型数据
  
  sheets.Add(new SheetData()
  
  {
  
  DisplayName = "合同编码",
  
  DisplayValue = "XB201500015",
  
  Editable= false
  
  });
  
  sheets.Add(new SheetData()
  
  {
  
  DisplayName = "合同名称",
  
  DisplayValue = "XXXXXX合同",
  
  Editable= false
  
  });
  
  // 添加数值类型数据
  
  sheets.Add(new SheetData()
  
  {
  
  DisplayName = "合同金额",
  
  DisplayValue = "200000",
  
  Editable= true
  
  });
  
  // 添加日期类型数据
  
  sheets.Add(new SheetData()
  
  {
  
  DisplayName = "签定日期",
  
  DisplayValue = "2015-5-10"
  
  });
  
  // 添加附件类型数据
  
  sheets.Add(new SheetData()
  
  {
  
  DisplayName = "合同附件",
  
  DisplayValue = "<a href='http://xxxx/xx.doc' target='_blank'>附件一</a>"
  
  });
  
  // 添加附件类型数据
  
  sheets.Add(new SheetData()
  
  {
  
  DisplayName = "采购明细表"
  
  });
  
  // 明细表第一行第一个字段
  
  sheets.Add(new SheetData()
  
  {
  
  ParentDisplayName = "采购明细表", // 子表数据项的显示名称
  
  DisplayName = "商品名称", // 子表的字段显示名称
  
  DisplayValue = "PC电脑", // 子表的字段值
  
  RowIndex = 1 // 子表的行索引
  
  });
  
  // 明细表第一行第二个字段
  
  sheets.Add(new SheetData()
  
  {
  
  ParentDisplayName = "采购明细表",
  
  DisplayName = "采购数量",
  
  DisplayValue = "12",
  
  RowIndex = 1
  
  });
  
  // 明细表第二行第一个字段
  
  sheets.Add(new SheetData()
  
  {
  
  ParentDisplayName = "采购明细表",
  
  DisplayName = "商品名称",
  
  DisplayValue = "iPad",
  
  RowIndex = 2
  
  });
  
  // 明细表第二行第二个字段
  
  sheets.Add(new SheetData()
  
  {
  
  ParentDisplayName = "采购明细表",
  
  DisplayName = "采购数量",
  
  DisplayValue = "20",
  
  RowIndex = 2
  
  });
  
  return sheets;
  
  }
  
  4.3.2 移动端表单操做接口
  
  应用系统必须提供2个接口方法给统一任务集成平台调用,方便统一平台在移动端审批时,能实现应用系统的提交、驳回操做,接口提供推荐使用WebServices模式。
  
  接口一:提交任务接口,统一使用名称 SubmitItem
  
  接口须要接收3个参数:
  
  字段名称
  
  类型
  
  说明
  
  Token
  
  字符串
  
  统一平台会调用SSO加密服务将结果传递至应用系统,应用系统再调用解密服务验证Token值的真实有效性,而后进行处理。
  
  ID
  
  字符串
  
  任务惟一标示
  
  CommentText
  
  字符串
  
  当前任务审核意见
  
  SheetData
  
  字符串
  
  移动审批修改的数据项值,以JSON格式传递,当不修改时传递为空。
  
  例如:
  
  {数据项名称1:"数据项1的值",数据项名称2:"数据项2的值"}
  
  接口二:驳回任务接口,统一使用名称 RejectItem
  
  接口须要接收3个参数:
  
  字段名称
  
  类型
  
  说明
  
  Token
  
  字符串
  
  统一平台会调用SSO加密服务将结果传递至应用系统,应用系统再调用解密服务验证Token值的真实有效性,而后进行处理。
  
  ID
  
  字符串
  
  任务惟一标示
  
  CommentText
  
  字符串
  
  当前任务审核意见
  
  SheetData
  
  字符串
  
  移动审批修改的数据项值,以JSON格式传递,当不修改时传递为空。
  
  例如:
  
  {数据项名称1:"数据项1的值",数据项名称2:"数据项2的值"}数组

相关文章
相关标签/搜索