OAuth2.0认证接口

授权码模式

密码模式

客户端模式

单点登出

一、授权码模式

该模式的授权流程为:

1、跳转到认证中心认证用户。

2、使用code获取access_token。

3、获取用户信息。

1、用户认证

跳转到SID认证中心认证用户。

请求⽅式: GET(HTTPS或HTTP

请求地址: http://sso.xxx.example.com/oauth2.0/authorize

注:https方式类似。

请求参数:

https://sid.rghall.com.cn/oauth2.0/authorize?response_type=code&client_id=oauthtest&redirect_uri=http%3A%2F%2Foauth.client.com.cn%3A9878

参数说明:

参数 是否必须 说明
response_type 授权码模式,这里固定为code
client_id 应用id
redirect_uri 应用回调地址
scope 权限列表,以空格分隔。

返回结果:

重定向到认证页面,认证成功页面将跳转至 redirect_uri?code=CODE
code说明:code作为换取access_token的票据,每次用户授权带上的code将不一样
code只能使用一次,10s未被使用自动过期。

参数说明:

参数 说明
code SID跳转到redirect_uri时,code参数会附带在该地址中

2、用code获取access_token

使用code获取access_token。

请求⽅式: POST/GET(HTTPS或HTTP),在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/accessToken

注:https方式类似。

请求头(header):

Content-Type:form-data或者url传参

注:使用get请求时,不用添加请求头。

请求参数:

获取code后,请求以下链接获取access_token

form表单post请求

grant_type:authorization_code
client_id:oauthtest
client_secret:9aggRf1kk0tSM28X-Fmo972aTkHt5hni2yXQH3IbBtx8cM-yGeSBItw6ASePAB0O
redirect_uri:http://oauth.client.com.cn:9878/
code:OC-9-iQBaj2rYndjtttJqJE9P6Qn-eoinZGnJ

url get请求

https://sid.rghall.com.cn/oauth2.0/accessToken?client_id=oauthtest&client_secret=9aggRf1kk0tSM28X-Fmo972aTkHt5hni2yXQH3IbBtx8cM-yGeSBItw6ASePAB0O&code=OC-8-gaju-c32d3JdJFfowTOU40UdoubIZBaX&grant_type=authorization_code&redirect_uri=http%3A%2F%2Foauth.client.com.cn%3A9878

参数说明:

参数 是否必须 说明
grant_type 授权码模式,这里固定为authorization_code
client_id 应用id
client_secret 应用秘钥
redirect_uri 应用回调地址
code 授权码

返回结果:

{
    "access_token":"AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU",
    "token_type":"bearer",
    "expires_in":28800,
    "refresh_token":"RT-7-XuigbD-eb4qSN0LwHBSixvpmv4zCzw21"
}

参数说明:

参数 是否必须 说明
access_token 访问令牌
token_type 令牌类型
expires_in 令牌有效期
refresh_token 刷新令牌,该参数只有在SID中将下发刷新令牌勾选为“是”时才会返回

注:获取refresh_token参数的值需先在SID中选择“下发刷新令牌”,如下图:

img

3、获取用户信息

使用access_token获取用户信息。

请求⽅式: GET/POST(HTTPS或HTTP),在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/profile

注:https方式类似。

请求头(header):

Content-Type:form-data

注:使用get请求时,不用添加请求头。

请求参数:

form表单post请求

  access_token:AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

url get请求

https://sid.rghall.com.cn/oauth2.0/profile?access_token=AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

参数说明:

参数 是否必须 说明
access_token 访问令牌

返回结果(员工):

{
    "active": true,
    "attributes": {
        "DQZTM": "在任",
        "DWH": "网络信息与综合服务中心",
        "DWM": "306000",
        "GH": "20042020",
        "PRZWMC": "员工",
        "SFLBDM": "01",
        "XBM": "男性",
        "XM": "xxxx"
        "SFLBMC": "xxx"
        },
    "id": "20042020",
    "client_id": xxx
}

参数说明:

参数 说明
id 用户名
client_id 应用id
attributes 用户属性列表
XM 姓名
XBM 性别
SFLBDM 身份类别代码
GH 工号
PRZWMC 职位名称
DWM 单位名
DWH 单位号
DQZTM 当前状态
ZWJBMC 职务级别名称
SFLBMC 身份类别名称

4、获取用户单身份/多身份信息

使用access_token获取用户信息。

请求⽅式: GET/POST(HTTPS或HTTP),在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/oauthcode/multiple/identity

注:https方式类似。

请求头(header):

Content-Type:multipart/form-data

注:使用get请求时,不用添加请求头。

请求参数:

form表单post请求

  access_token:AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

url get请求

http://sso.xxx.example.com/oauth2.0/oauthcode/multiple/identity?access_token=AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

参数说明:

参数 是否必须 说明
access_token 访问令牌

返回结果(主任和组长多身份为例):

{
    "id": "T001",
    "users": [
        {
        "DQZTM": "在任",
        "DWH": "网络信息与综合服务中心",
        "DWM": "306000",
        "GH": "0220221356",
        "PRZWMC": "主任",
        "SFLBDM": "01",
        "XBM": "男性",
        "XM": "xxxx",
        "TEL": "18616612569",
        "SFLBMC": "xxx"
        },
        {
        "DQZTM": "在任",
        "DWH": "网络信息与综合服务中心",
        "DWM": "306000",
        "GH": "T001",
        "PRZWMC": "组长",
        "SFLBDM": "01",
        "XBM": "男性",
        "XM": "xxxx",
        "TEL": "18616612569",
        "SFLBMC": "xxx"
        }
    ]
}

参数说明:

参数 说明
id 用户认证时使用的ID
users 用户属性列表
XM 姓名
XBM 性别
SFLBDM 身份类别代码
GH 工号
PRZWMC 职位名称
DWM 单位名
DWH 单位号
DQZTM 当前状态
ZWJBMC 职务级别名称
SFLBMC 身份类别名称
TEL 手机号

二、密码模式

该模式的授权流程为:

1、获取access_token。

2、获取用户信息。

3、使用刷新令牌获取access_token(该步骤可选)。

1、获取access_token

获取access_token。 token闲置两个小时会失效

请求⽅式: POST(HTTPS或HTTP)请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/accessToken

请求头(header):

Content-Type:form-data

注:https方式类似。

请求参数:

form表单post请求

grant_type:password
client_id:oauthtest
username:test001
password:test001

参数说明:

参数 是否必须 说明
grant_type 密码模式为password
client_id 应用id
username 用户名
password 密码
scope 权限列表,以空格分隔

返回结果:

{
    "access_token": "AT-1-IWyhZhU1hKKvWPddAJpdHRN2ECu08Ypo",
    "token_type": "bearer",
    "expires_in": 28800,
    "refresh_token": "RT-1-cvHg23sAYRfu-1h8e57U9PSGK1qyL-mW"
}

参数说明:

参数 是否必须 说明
access_token 访问令牌
token_type 令牌类型
expires_in 令牌有效期
refresh_token 刷新令牌,该参数只有在SID中将下发刷新令牌勾选为“是”时才会返回

2、获取用户信息

使用access_token获取用户信息。

请求⽅式: GET/POST(HTTPS或HTTP),在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/profile

注:https方式类似。

请求头(header):

Content-Type:multipart/form-data

注:使用get请求时,不用添加请求头。

请求参数:

form表单post请求

  access_token:AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

url get请求

https://sid.rghall.com.cn/oauth2.0/profile?access_token=AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

参数说明:

参数 是否必须 说明
access_token 访问令牌

返回结果(员工为例):

{
    "attributes": {
        "DQZTM": "在任",
        "DWH": "网络信息与综合服务中心",
        "DWM": "306000",
        "GH": "20042020",
        "PRZWMC": "员工",
        "SFLBDM": "01",
        "XBM": "男性",
        "XM": "xxxx"
        "SFLBMC": "xxx"
        },
    "id": "20042020"
}

参数说明:

参数 说明
id 用户名
attributes 用户属性列表
XM 姓名
XBM 性别
SFLBDM 身份类别代码
GH 工号
PRZWMC 职位名称
DWM 单位名
DWH 单位号
DQZTM 当前状态
ZWJBMC 职务级别名称
SFLBMC 身份类别名称

3、获取用户单身份/多身份信息

使用access_token获取用户信息。

请求⽅式: GET/POST(HTTPS或HTTP),在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/profile/multiple

注:https方式类似。

请求头(header):

Content-Type:multipart/form-data

注:使用get请求时,不用添加请求头。

请求参数:

form表单post请求

  access_token:AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

url get请求

https://sid.rghall.com.cn/oauth2.0/profile/multiple?access_token=AT-98-kkxRFRAp7JP4HvKcooOlTjqEslglCNoU

参数说明:

参数 是否必须 说明
access_token 访问令牌

返回结果(主任和组长多身份为例):

{
    "id": "18616612569",
    "users": [
        {
        "DQZTM": "在任",
        "DWH": "网络信息与综合服务中心",
        "DWM": "306000",
        "GH": "0220221356",
        "PRZWMC": "主任",
        "SFLBDM": "01",
        "XBM": "男性",
        "XM": "xxxx",
        "TEL": "18616612569",
        "SFLBMC": "xxx"
        },
        {
        "DQZTM": "在任",
        "DWH": "网络信息与综合服务中心",
        "DWM": "306000",
        "GH": "T001",
        "PRZWMC": "组长",
        "SFLBDM": "01",
        "XBM": "男性",
        "XM": "xxxx",
        "TEL": "18616612569",
        "SFLBMC": "xxx"
        }
    ]
}

参数说明:

参数 说明
id 用户认证时使用的ID
users 用户属性列表
XM 姓名
XBM 性别
SFLBDM 身份类别代码
GH 工号
PRZWMC 职位名称
DWM 单位名
DWH 单位号
DQZTM 当前状态
ZWJBMC 职务级别名称
SFLBMC 身份类别名称
TEL 手机号

4、使用刷新令牌获取access_token

通过刷新令牌获取access_token。

请求⽅式: GET/POST(HTTPS或HTTP),在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/accessToken

注:https方式类似。

请求头(header):

Content-Type:form-data

注:使用get请求时,不用添加请求头。

请求参数:

form 表单post请求

grant_type:refresh_token
client_id:oauthtest
client_secret:9aggRf1kk0tSM28X-Fmo972aTkHt5hni2yXQH3IbBtx8cM-yGeSBItw6ASePAB0O
refresh_token:RT-3-45I95UgqIOiBzM7EUrBQfdA74wDbYIal

url get请求

https://sid.rghall.com.cn/oauth2.0/accessToken?grant_type=refresh_token&client_id=oauthtest&client_secret=9aggRf1kk0tSM28X-Fmo972aTkHt5hni2yXQH3IbBtx8cM-yGeSBItw6ASePAB0O&refresh_token=RT-3-45I95UgqIOiBzM7EUrBQfdA74wDbYIal

参数说明:

参数 是否必须 说明
grant_type 固定为refresh_token
client_id 应用id
client_secret 应用秘钥
refresh_token 刷新令牌

返回结果:

{
    "access_token": "AT-1-IWyhZhU1hKKvWPddAJpdHRN2ECu08Ypo",
    "token_type": "bearer",
    "expires_in": 28800
}

参数说明:

参数 说明
access_token 访问令牌
token_type 令牌类型
expires_in 令牌有效期

三、客户端模式

该模式的授权流程为:

1、获取access_token。

1、获取access_token

获取access_token。token闲置两个小时会失效

请求⽅式: GET/POST(HTTPS或HTTP)在安全要求情况下,请使用POST请求,通过https对传输加密。

请求地址: http://sso.xxx.example.com/oauth2.0/accessToken

注:https方式类似。

请求参数:

form表单post请求

grant_type:client_credentials
client_id:oauthtest
client_secret:9aggRf1kk0tSM28X-Fmo972aTkHt5hni2yXQH3IbBtx8cM-yGeSBItw6ASePAB0O

url get请求

请求示例:
https://sid.rghall.com.cn/oauth2.0/accessToken?grant_type=client_credentials&client_id=oauthtest&client_secret=9aggRf1kk0tSM28X-Fmo972aTkHt5hni2yXQH3IbBtx8cM-yGeSBItw6ASePAB0O

参数说明:

参数 是否必须 说明
grant_type 客户端模式,这里固定为client_credentials
client_id 应用id
client_secret 应用秘钥
scope 权限列表,以空格分隔

返回结果:

{
    "access_token": "AT-1-IWyhZhU1hKKvWPddAJpdHRN2ECu08Ypo",
    "token_type": "bearer",
    "expires_in": 28800
}

参数说明:

参数 说明
access_token 访问令牌
token_type 令牌类型
expires_in 令牌有效期

四、单点登出

登出地址为/logout。

请求⽅式: GET(HTTPS或HTTP

请求地址: http://sso.xxx.example.com/logout

注:https方式类似。

当需要实现登出后重新登录,自动跳转到对接应用时,可以在登出地址后携带service参数,例如:

http://sso.xxx.example.com/logout?service=http://192.168.54.63:8080/user/index ```

参数说明:

参数 是否必须 说明
service SID要跳转的地址
©2020 锐捷网络股份有限公司 all right reserved,powered by Gitbook该文章修订时间: 2025-02-18 14:26:08

results matching ""

    No results matching ""