IMO 开放平台单点登录

中国互联网办公室·imo运营中心

 


目录


1 引言 3

1.1 编写目的 3

1.2 读者对象 3

1.3 文档内容 3

1.4 系统说明 3

2 业务流程 4

3 接口说明: 6

4 接入范例 7


1 引言

1.1 编写目的

说明单点登录系统的设计方案,交互流程。

1.2 读者对象

单点登录系统的开发,产品设计人员,以及接入开放平台的第三方相关人员

1.3 文档内容

单点登录系统的设计方案,交互流程。

1.4  系统说明

单点登录:登录IMOClient后,可以直接进入第三方平台,不需要再次在三方平台进行登录。

2 业务流程

1. 接入方在imo 开放平台申请第三方接入权限,并提交自己的SSOURL

 

2. Imo 开放平台通过接入申请,为接入方发放特定API_KEY(132个字节长的字符串)

3. Imo为接入方在imoclient上将之前提交的SSOURL绑定到<应用中心>APP图标上(自动)

4. 用户点击APP图标,imoclient开启web页面,url:ssourl?cid=xxxx&uid=xxxx&key=xxxxxxxx

5. 接入方接收到ssourl的请求,通过imoserver提供的imoAuth接口(httprestful)ciduid合法性进行验证。

6. appcheck接口返回认证成功,接入方确认此uid为合法imo账号,可以开始绑定流程,或直接访问接入方内部系统。

 

3 接口说明:

1. Imoclient调用ssourl说明:

调用方式:http get

参数:cid, 一个公司的唯一数字标识,取值,1-9223372036854775807

参数:uid,一个用户的唯一数字标识,取值,1-9223372036854775807

Key: 256byte 字符串

Eg:http://appoa.oa.com/ssourl? cid=xxxx&uid=xxxx&key=xxxxxxxx

   (http://appoa.oa.com/ssourl为第三方url )

 

 

2. appcheck接口说明:

调用方式:http post

参数:cid, 一个公司的唯一数字标识,取值,1-9223372036854775807

参数:uid,一个用户的唯一数字标识,取值,1-9223372036854775807

参数:Key, imo生成的一个用户的签名,60秒后失效,取值,256byte 字符串

(参数来自接口1)发送前需要做URLENCODE

返回:{“result”:”success”,”info”:”ok”}

   EG:http://open.imoffice.com:8000/?app=appcheck&cid=xxxx&uid=xxxx&key=xxxxxxxxx

 

 

 

4 接入范例

http://test.oplatform.imoffice.cn/mis/view.php 

 

 

验证接口demo

PHP版:

$key = urlencode($key);

$url="http:// test.oplatform.imoffice.cn /?app=appcheck&cid={$cid}&uid={$uid}&key={$key}";

$result = curl($url);

 

 function curl($url, $timeout = 10) {

    $ch = curl_init();

    $tt =  curl_errno($ch);

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

    $output = curl_exec($ch);

    curl_close($ch);

    return $output;

 }

 

Java版:

 

public String curl(String url,String timeout ) throws Exception{

  String cid = getParameter("cid");

  String uid= getParameter("uid");

  String key = getParameter("key");

 

      HttpClient client = new DefaultHttpClient();

      client.getParams().setParameter("http.socket.timeout", new Integer(timeout));

      client.getParams().setParameter("http.protocol.content-charset", "UTF-8");

      HttpPost post = new HttpPost(url);

 

      try {

      List params = new ArrayList();

         params.add(new BasicNameValuePair("cid", cid));

         params.add(new BasicNameValuePair("uid", uid));

         params.add(new BasicNameValuePair("key", key));

 

         post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

         HttpResponse response = client.execute(post);

         String result = EntityUtils.toString(response.getEntity());

     } catch (ClientProtocolException e) {

         e.printStackTrace();

     } catch (IOException e) {

         e.printStackTrace();

     }

     

 return result;

}

 http://www.yxxx.net.cn  西安云翔软件信息科技有限公司

你可能感兴趣的:(imo,imo二次开发)