• EN

业务系统通过OAuth2接入E10

作者:eteams2024-04-16 16:49

•  文档简介

•  应用集成E10系统准备

    业务系统

    E10系统

•  认证集成过程

    OAuth2.0认证过程

    认证集成

        获取client_id和client_secret参数

        开启OAuth2认证

        获取Authorization Code

        获取Access Token

        获取用户信息

        退出

        验证

•  附录1:提示页面信息

•  附录2:接口错误代码



   文档简介

本文档详细定义了E10系统所提供的OAuth2.0认证服务接口的接口规范。当应用系统在与E10系统进行OAuth2.0认证集成时,需要了解该文档的内容,并根据该文档定义的接口规范进行相应接口的开发或调整。


   应用集成E10系统准备

一、业务系统

应用系统(需要接入oauth认证的应用)准备认证成功回调地址:

1、回调地址(接收code验证码的地址及认证成功跳转地址)

注:回调地址中不支持带有路由的地址。

属性名

说明

redirect_uri

http://XXX.XXX.XXX.XXX/XX/XX

2、应用系统地址协议需与E10系统协议保持一致。

3、向E10系统申请注册应用系统并且提供回调地址给E10系统。

4、向E10系统申请将回调地址域名加入到白名单中。


二、E10系统

1、根据应用系统提供的回调地址,注册应用系统

环境配置:

属性名

说明

client_id

注册应用标识,示例:a1dd20759a9046d2bfbc4f104558fe39

client_secret

注册应用密钥,示例:

4f6f5533-35ac-4c14-ad99-35bec3bf2a29

请求用户授权接口地址

请求登陆认证地址,示例:

https://weapp.mulinquan.cn/papi/sso/oauth2.0/authorize

获取授权Token接口地址

code交互token地址,示例:

https://weapp.mulinquan.cn/papi/sso/oauth2.0/accessToken

获取用户信息接口地址

Token交互用户信息地址,示例:

https://weapp.mulinquan.cn/papi/sso/oauth2.0/profile

统一退出接口地址

注销E10系统认证地址,示例:

https://weapp.mulinquan.cn/sp/integration/oauth2.0/logout

2、注册完成,将信息反馈给应用系统。


   认证集成过程

一、OAuth2.0认证过程

整体上分为三个接口,获取授权码接口 、获取Token接口、获取用户信息接口;

1、获取授权码接口:可获取到授权码code

2、获取应用Token接口:用户通过授权码code,获得access_token;

3、获取用户信息接口:用户通过access_token可获取用户基本信息。

流程图:



二、认证集成

1、获取client_id和client_secret参数

统一认证中心-认证应用管理,注册应用系统的OAuth2认证应用。

其中,应用标识以及应用密钥则是对应的client_id和client_secret参数值。

适用对象:设置应用的人员限制范围,只允许范围内的人员通过应用登录业务系统。

业务系统URL地址:该地址是应用在用户登录完成后返回给应用授权码的地址。

账号映射规则:设置需要返回给应用人员的哪个字段信息(需在人员基本信息里面维护)。


2、开启OAuth2认证

统一认证中心-认证协议管理-OAuth2认证,直接开启认证,提供OAuth2认证接口地址。



3、获取Authorization Code

用户访问该应用系统时,应用通过下面接口向E10系统发起授权登录请求,用户输入用户名密码认证成功后,E10系统将重定向到第三方应用系统,并且带上授权码code参数。

请求说明:

参数

描述

请求地址

OAuth2认证中“请求用户授权接口地址”

E10系统地址/papi/sso/oauth2.0/authorize

请求方式

GET

请求参数:

参数

名称

必须

示例

描述

response_type

授权类型

必须

code

固定为code

client_id

应用标识

必须

9c5a07c0e2ad40229cc73306b6996f6b

E10系统认证应用管理中该应用注册的应用标识

redirect_uri

回调地址

必须

https://cas.e-cology.cn

成功授权后的回调地址。

注:不支持地址中有#路由地址。

请求示例:

E10系统地址/papi/sso/oauth2.0/authorize?client_id=e9b7bee8b9d0434eb022fe2f8604addf&redirect_uri=https://cas.e-cology.cn&response_type=code

返回参数说明:

参数

名称

描述

code

授权码

用户登录并授权后,返回给应用的授权码。注意:此code是一次有效。

正确返回示例:

redirect_uri?code=ST-2-3waB7JCdPdAweaCW1ciBxwm5WJ8beta11

错误返回示例:

会跳转提示页面。可能跳转的提示页面可参考附录1:提示页面信息



4、获取Access Token

通过用户验证登录授权后,获取授权令牌Access Token,Access Token是第三方应用在调用E10系统获取用户信息时必须传入的参数。

请求说明:

参数

描述

请求地址

OAuth2认证中“获取授权Token接口地址”

E10系统地址/papi/sso/oauth2.0/accessToken

请求方式

POST

请求参数:

参数

名称

必须

示例

描述

grant_type

授权类型

必须

authorization_code

固定为authorization_code

client_id

应用标识

必须

9c5a07c0e2ad40229cc73306b6996f6b

E10系统认证应用管理中该应用注册的应用标识

client_secret

应用密钥

必须

4439727c-2f20-42d1-b11c-e36b8214072e

E10系统认证应用管理中该应用注册的应用密钥

code

授权码

必须



redirect_uri

回调地址

必须

https://cas.e-cology.cn

成功授权后的回调地址。

注:不支持地址中有#路由地址。

请求示例:

curl --request POST 'https://weapp.yunteams.cn/papi/sso/oauth2.0/accessToken?client_id=1910ad2019214245bb7dcf8bd3c0472e&client_secret=e4d790e2-f735-4f09-8e91-29f3bf56c849&grant_type=authorization_code&code=ST-57-GZMpTGqlhgsVjXyh6Le9qVwVTnEETW029070&redirect_uri=https://cas.e-cology.cn

返回参数说明:

参数

名称

描述

access_token

授权令牌

返回给第三方应用的授权令牌,获取用户信息时需要使用到

expire

授权令牌的有效期

返回给应用的授权令牌的有效期。(注意:有效期以秒为单位)

msg

错误信息

成功为SUCCESS

code

错误代码

成功为0

status

状态码

成功200,失败400

正确返回示例:

{

    "msg":"SUCCESS",

    "access_token":"TGT-17-ltrkyX7uoV1UyJvtZVQ3OsLwMKLuiiBghgEi8d5jeQejC0Xl---taqwusjwbChnVGvgETW029070",

    "code":"0",

    "expire":7200,

    "status":200

}

错误返回示例:

接口返回的错误代码可参考附录2:接口错误代码

{

    "msg":"参数client_id不能为空",

    "code":"1002",

    "status":400

}



5、获取用户信息

此接口主要用于第三方应用系统使用E10系统登录时,从E10系统获取当前登录用户的信息。

请求说明:

参数

描述 

请求地址

OAuth2认证中“获取用户信息接口地址”

E10系统地址/papi/sso/oauth2.0/profile

请求方式

POST

请求参数:

参数

名称

必须

示例

描述

access_token

授权令牌

必须

authorization_code

获取授权Token接口返回的access_token

请求示例:

curl --request POST 'https://weapp.yunteams.cn/papi/sso/oauth2.0/profile?access_token=xxxx'

返回参数说明:

参数

名称

描述

id

用户信息

值为该应用注册的OAuth2应用选择的账号映射规则对应的值

msg

错误信息

成功为SUCCESS

code

错误代码

成功为0

status

状态码

成功200,失败400

attributes

人员其他属性

暂不返回人员其他属性值

正确返回示例:

{

    "msg":"SUCCESS",

    "code":"0",

    "attributes":{

 

    },

    "id":"18229708888",

    "status":200

}

错误返回示例:

接口返回的错误代码可参考附录2:接口错误代码

{

    "msg":"参数access_token值失效",

    "code":"1012",

    "status":400

}



6、退出

应用在和E10系统进行认证集成后,在退出应用系统后,会出现无法退出的情况,原因是没有注销E10系统的登录会话。

所以应用在退出时,可调用E10系统的退出接口,进行E10系统的用户会话注销。

注意:退出接口还未支持全局退出,即应用调用退出接口后, 是退出了E10的会话,当前应用退出了,但是另外接入的应用将还不会退出。

请求说明:

参数

描述

请求地址

OAuth2认证中“统一退出接口地址”

E10系统地址/sp/integration/oauth2.0/logout

请求方式

GET

请求参数:

参数

名称

必须

示例

描述

service

退出重定向地址

必须

https%3A%2F%2Fjytcas.e-cology.cn%2Fdemo_oauth%2Findex.jsp

域名需要在白名单中进行设置,否则将不能跳转service

请求示例:

E10系统地址/sp/integration/oauth2.0/logout?service=https%3A%2F%2Fjytcas.e-cology.cn%2Fdemo_oauth%2Findex.jsp



7、验证

维护应用系统与E10系统之间的人员关系。

访问应用系统,调用E10系统授权接口进行登录授权(应用系统自行实现),E10认证登录授权后,携带code回调应用系统, 应用系统进行登录。



   附录1:提示信息页面

请求用户授权接口进行授权时,如果授权失败,将会跳转到提示页面。

以下列举可能出现的提示:

code

提示信息

描述

80006

当前账号未维护登录名,请设置登录名后重新登录

认证应用中账号映射规则设置了登录名,登录人员需要维护登录名

80007

当前账号未维护身份证,请设置身份证后重新登录

认证应用中账号映射规则设置了身份证,登录人员需要维护身份证

80008

当前账号未维护工号,请设置工号后重新登录

认证应用中账号映射规则设置了工号,登录人员需要维护工号

80009

当前账号未维护电子邮箱,请设置电子邮箱后重新登录

认证应用中账号映射规则设置了电子邮箱,登录人员需要维护电子邮箱

80010

当前账号未维护手机号码,请设置手机号码后重新登录

认证应用中账号映射规则设置了手机号码,登录人员需要维护手机号码

80011

该用户当前团队与应用所属团队【xxx】不一致,请切换正确的团队后重新登录

需要切换到认证应用所在团队,才能进行认证登录

80012

当前认证未开启,请联系管理员开启认证

应用标识对应的认证应用被禁用了

80013

回调地址与认证应用注册的业务系统URL地址不一致,请联系管理员检查配置

授权接口传的redirect_uri参数值与认证应用中业务系统URL地址不一致

80014

登录用户不在认证应用注册的适用对象范围内,请联系管理员检查配置

认证应用设置的适用对象中没有此人员

80015

参数应用标识(client_id)缺失或值未在认证应用中注册,请联系管理员检查配置信息

授权接口传的client_id参数值不对,需要应用系统检查

80016

参数response_type缺失或值错误,请联系管理员检查配置信息

授权接口传的response_type参数值不对,需要应用系统检查

80017

参数回调地址(redirect_uri)缺失,请联系管理员检查配置

授权接口传的redirect_uri参数值不对,需要应用系统检查

80018

参数应用标识(appid)缺失或值未在认证应用中注册,请联系管理员检查配置信息

process接口里面参数appid不对

80019

参数回调地址(service)缺失,请联系管理员检查配置

process接口里面参数service不对

80020

参数回调地址(appUrl)缺失,请联系管理员检查配置

process接口里面参数appUrl不对

80021

接口请求超时异常,请稍后重新登录


80022

认证登录异常,请稍后重新登录


80023

认证应用未启用,请联系管理员启用应用

OAuth2认证还是关闭状态

80026

认证登录异常,请稍后重新登录

rpc接口异常,需要等待



   附录2:接口错误代码

接口返回的结果里的code值:

错误代码(code)

错误信息(msg)

0

成功

1002

参数client_id不能为空

1003

参数redirect_uri不能为空

1005

参数redirect_uri未注册

1007

参数client_secret不能为空

1008

参数code不能为空

1009

参数client_secret未注册

1010

参数code值失效

1011

参数access_token不能为空

1012

参数access_token值失效

2019

授权异常

1014

process异常

1015

获取access_token异常

1016

获取用户异常

1017

参数grant_type不能为空

1018

登录异常

1019

获取TGT异常

1020

获取Ticket异常

1022

参数grant_type值错误

2022

参数clientId未注册

9090

service不存在

80021

超时异常,请重试


Download Log in Enable for free

Scan with WeChat to register and install

在线咨询
  • WeCom service group

    另存
  • Pre-sales consultant

    另存
  • QQ group

    413040701

    Join

Follow us

021-50388680

sales@eteams.cn

Live