中国科技资源共享网第三方登录接口文档 背景
中国科技资源共享网 (opens new )(以下简称“共享网”)是汇聚国家级数据中心和库馆(以下简称“国家平台”)资源的门户网站。各国家平台均运营独立的的网站,而且都在共享网上提供了相应的访问入口,因此用户在共享网上发起的访问请求往往需要跳转到各国家平台网站。
目前,各国家平台网站为实现资源的有条件访问,均建设了各自独立的用户管理机制,因此不能共通共用。按照平台中心要求及终端用户的体验需求,共享网与各国家平台网站之间实现统一的用户访问。为此,需要对共享网和各国家平台建立统一的用户认证机制,以实现用户在共享网与国家平台网站之间的访问连贯性。
目标
为解决用户访问连贯性问题,需要建立中国科技资源共享网与各国家平台网站的用户统一认证机制,避免终端用户的多次重复登入,以提升用户体验:
(1)终端用户在共享网上登入后,可以任意跳转到各国家平台网站而不需再次登入,并且可以正常地访问相关资源;
(2)各国家平台网站将共用共享网的用户信息(称之为共享网用户)。
目前,统一认证提供共享网用户的单向登录,即共享网用户可以实现单点登录访问各平台网站。各国家平台可以保留自有的用户信息和权限管理机制,要实现双向的单点登录,还需要共享网与各平台的技术协商。
设计原则
共享网用户统一认证的设计与建设,遵循以下原则:
认证流程
本部分将简要介绍统一认证的功能、流程以及相关的权限初始化。
主要功能
统一认证模块的主要功能如下:
用户属性信息包括但不限于表1-1:
表1-1 用户属性信息表
属性名 属性说明 备注(参考例子)
用户ID
用户名
国家平台网站认证流程
本部分主要描述用户在成果登入共享网后、再跳转到任意国家平台网站时,国家平台网站的用户认证流程。认证流程如图1-1所示:
图1-1 各平台中心网站的用户统一认证流程
用户权限初始化
国家平台网站在得到共享网传递的统一认证用户信息后,将遵循以下原则对用户的权限进行初始化:
(1)基于统一认证用户的ID对用户主体进行区分;
(2)所有用户默认具有各国家平台网站上的最低系统权限。
接口使用条款
(1)共享网用户是用户相关接口资源的拥有者imToken钱包官网,需要尊重和保护用户的权益;
(2)未经用户允许,不允许将用户的个人信息用于个人、组织或者任何机构的商业行为,研究行为也必须征求用户的同意;
(3)禁止滥用接口,请求频率过快将导致请求终止。
软件环境
本部分主要描述各国家平台网站使用统一认证服务所需的软件环境配置。
所谓国家平台网站接入统一认证,指的是国家平台网站Web应用接受来自共享网的认证票据(),并提请统一认证中心验证票据的合法性,随后从统一认证中心的反馈中抽取用户信息。
Java环境
下表列出在JAVA环境下统一认证接入对各国家平台网站的软件要求:
表2-1 JAVA环境软件配置
操作系统 JDK/JRE Web服务器
或Linux
Java1.5以上
支持SSL和.3规范,如.x
PHP环境
下表列出PHP环境下统一认证接入对各国家平台网站的软件要求:
表2-2 PHP环境软件配置
操作系统 PHP Web服务器
或Linux
PHP5.X及更高版本
且编译时必须加上以下选项:
--with-curl
--with-
--with-dom
--
(带SSL支持)
环境
下表列出()环境下统一认证接入对各国家平台网站的软件要求:
表2-3 ()环境软件配置
操作系统
, Linux, Mac OSX
2.7, 3.x
--with-
1.5, 1.6, 1.7, 1.8
认证接入 什么是“(共享网)登录.0”
OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问存储在另外服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。.0是OAuth协议的延续版本,但不向前兼容.0(即完全废止了.0)。
登录.0:对于用户相关的开放接口(例如获取用户信息等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。
登录.0采用.0标准协议来进行用户身份验证和获取用户授权,其认证流程简单,安全性高。
有关.0开放标准请参看:
OAuth标准(英文) (opens new )
准备工作 申请应用ID和应用CS
申请流程为:
国家平台管理员增加“终端管理”功能; 申请应用ID和应用CS;
a)进入后台管理系统的【第三方登录】=>【应用管理】页面,点击创建应用按钮,在弹出的对话框中填写网站或应用的详细资料(名称,域名,回调地址);
b)点击“确定”按钮,提交资料后,获取应用ID和应用CS
注意:共享网试运行期间,可直接联系管理员获取应用ID和应用CS。
图 创建新应用图
图 查看应用列表图
图 修改应用列表图
保证连接畅通
接入登录时,平台网站需要不停的和共享网进行交互,发送请求和接受响应。可以用命令ping ,保证连接畅通。
登录.0的处理流程
登录.0的处理流程主要包括以下两个步骤:
获取; 根据调用开放接口,来请求访问或修改用户授权的资源。 获取
登录.0针对网站分别提供了不同的登录验证和授权流程,目前提供以下2种获取 token的方式:
-side模式
即OAuth官方文档中提到的 Code模式,适用于需要从web 访问的应用。
-side模式
即OAuth官方文档中提到的模式,适用于需要通过静态网站或客户端访问的方式。
以上两种模式仅在获取时有所区别,后续获取调用API等方式均相同。
登录成功后,开发者会得到表示此次登录信息的 token,此参数在访问用户授权信息中会用到。
token由每次用户登录时生成,过期时间默认为三个月token 权限管理·(中国)官方网站,用户再次登录时自动刷新。
注:模式网站初期暂时不开放。
(1)获取 Code请求地址:
请求方法:GET
请求参数:
参数名称 解释
在共享网上注册用户创建的第三方应用。
表示在用户授权完毕之后将要跳转到的网页链接地址。
固定值为:code
scope
值为申请时候填写的
如果之前已经授权过的需要跳过授权页面,需要在上面第一步的 URL 加上 scope 参数,且 scope 的值需要和用户上次授权的勾选的一致。
返回结果为:回调地址?code=。
(2)通过code获取
共享网认证服务器通过认证后将携带用户授权码跳转到应用注册时填写的回调地址上,在这个地址上第三方网站可以直接获取到用户授权码。
第三方应用通过code获取相关的:使用的API向共享网认证服务器发送请求:
请求地址:
请求方法:POST
请求参数:
参数名称 解释
在共享网上注册用户创建的第三方应用。
在共享网上注册用户创建的第三方应用中获取。
表示在用户授权完毕之后将要跳转到的网页链接地址。
code
从回调地址中获取
固定值为:
scope
值为申请时候填写的
返回参数:
参数名称 解释
第三方网站访问用户在共享网上资源的凭证
此处固定为“”
过期时间,单位是秒(s)
scope
在共享网申请时填写的授权范围
此处固定为made by
jti
请求的id
根据获得对应用户信息
请求地址:
请求方法:GET
请求参数:
参数在请求里面,包含如下内容:
参数名称 解释
+一个英文空格+
为从共享网获取的。
和中间有一个空格
返回Json数据说明:
参数名称 解释
user
用户基本信息,是一个对象
权限标识集合,[]
roles
角色集合,[],只使用第一个即可
其中user字段(用户信息)包括如下几个方面:
参数名称 解释
主键ID,
用户名,
alias
用户名别称,
创建时间,
修改时间,
0-正常,1-删除,
锁定标记,
phone
电话,
头像,
orgId
所在机构的id,
机构名称,
邮箱,
tags
兴趣标签或者就是标签,
是此共享网网站上唯一对应用户身份的标识,国家平台网站可将此ID进行存储便于用户下次登录时辨识其身份,或将其与用户在网站上的原有账号进行绑定。
错误码说明:接口调用有错误时,会返回code和msg字段,以url参数对的形式返回,value部分会进行url编码(UTF-8)。
退出
当用户退出后第三方应用需要向共享网也发送一份登出的请求,用以清理共享网授权系统对当前系统、当前用户的记录信息和token记录信息。
参数有如下所示几个,下面的参数是包含在请求里面
参数名称 格式 解释
: {}
token
返回的信息格式如下:
{ "code": 200,
"msg": "success",
"data": true
}
如果退出成功则返回data为true,如果失败则data里面是详细说明信息。
登录按钮 联系人员 姓名 电话 邮箱
朱良湖
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。