OAuth2.0 客户端凭证模式(Client Credentials)接入

客户端凭证模式和密码凭证式很相似,主要适用于没有前端的纯后台应用。

客户端凭证模式交互流程

客户端客户端统一身份认证平台统一身份认证平台判断本地是否有用户登录状态,无进入 “客户端” 的登录页面POST 请求 https://cas_server_url/oauth2.0/accessToken?grant_type=client_credentials,附带 client_id、client_secret 参数验证客户端数据库,验证成功验证用户数据库,验证成功签发 access_token查找请求响应中的 access_token,有调用用户认证信息接口:https://cas_server_url/oauth2.0/profile,获取用户认证信息返回用户认证信息认证信息匹配本地账号失败,则使用认证信息创建账号如果用户认证信息不满足要求,可调用用户详情接口获取用户详情,作为本地用户详情数据调用用户详情信息接口:https://api_server_url/user/info,获取用户详情返回用户详情信息“客户端” 本地账号、用户信息建立关联,OAuth2.0 客户端凭证模式接入完成!

第一步:调用 Restfull API 认证接口获取 access_token

https://cas_server_url/oauth2.0/accessToken?grant_type=client_credentials&client_id=client&client_secret=123456

参数列表如下:

参数名称 参数说明 请求类型 是否必须 数据类型 schema
grant_type 授权类型常量 client_credentials query true string
client_id 应用审核通过后返回的client_id query true string
client_secret 应用审核通过后返回的client_secret query true string
{
    "access_token": "AT-3-rX4WfOiCgiF6qMNt52PfqDaQj-F4I9LK",
    "token_type": "bearer",
    "expires_in": 28800
}
第二步:获取到 access_token 后,可获取当前认证用户信息

根据 accesstoken 获取用户信息:https://cas_server_url/oauth2.0/profile?access_token=xxxxx

返回示例

{
  "service" : "service_url",
  "attributes" : {
    "credentialType" : "LoginCredential"
  },
  "id" : "admin",
  "client_id" : "client"
}

响应参数

参数名称 参数说明 类型 schema
service 应用地址 string
attributes 用户属性值 integer(int64)
id 用户唯一ID string
client_id 应用客户端ID string
作者:Jeebiz  创建时间:2022-10-21 15:06
最后编辑:Jeebiz  更新时间:2024-05-07 20:29