概述
本章节主要介绍,客户基于自己的用户管理系统(AM)来对接我们的云存储功能,目前我们的VSaaS有自带一个设备管理的功能(DM),来做设备与方案的绑定,以及事件的查询、回放、下载、删除。
第三方认证流程
第三方认证,用以服务器(云端)对服务器(云端)之间对用户信息进行合法性认证。流程参考如下:
第三方认证流程
主要过程叙述:
- 用户使用3rd app注册账号,并使用登录API登录3rd AM。
- 3rd AM返回特定的auth code到3rd app。
- 3rd app使用Get Vsaas Token API和auth code登录TUTK VSaaS服务器。
- TUTK VSaaS服务器使用Get Access Token API,从3rd AM获取Access Token。
- 3rd AM返回Access Token给TUTK VSaaS服务器。
- TUTK VSaaS服务器可以使用Get User Info API以及Access Token从3rd AM获取相关用户的信息。
- 3rd AM返回用户的信息到TUTK VSaaS服务器。
- TUTK VSaaS服务器验证用户的信息,并将VSaaS Token返回给3rd app。
- 3rd app还可以使用VSaaS刷新令牌VSaaS Refresh Token API从TUTK VSaaS服务器获取refresh token。
API:
VSaaS服务器将使用以下API访问第三方服务器:
- Get Access Token
Vsaas服务器向第三方服务器获取access token。
Request
HTTP request
由第三方提供url,比如:POST https://vendor-am.com/api/v1/authorize
Parameters
Header parameters
Authorization : Basic<base64(< span="">client_id:client_secret)>
Content-Type : application/x-www-form-urlencoded
Required
Response
Code
200
400
401
- Get Refresh Token
VSaaS从第三方服务器更新access token
Request
HTTP request
由第三方提供url,比如:POST https://vendor-am.com/api/v1/authorize
Parameters
Header parameters
Authorization : Basic<base64(< span="">client_id:client_secret)>
Content-Type : application/x-www-form-urlencoded
Required
Response
Code
200
400
401
- Get User Information
VSaaS服务器将从第三方服务器获取用户信息
Request
HTTP request
由第三方提供url,比如:GET https://vendor-am.com/api/v1/userinfo
Parameters
Header parameters
Authorization : Bearer
使用上面的access token
Response
Code
200
400
401
例子 :
Request
curl -X GET https://3rdpart.am.site/api/v1/userinfo -H 'Authorization: Bearer LKdkjlk8873BNN'
Response
{ "email":"someone@somewhere" }
APP端可以使用以下API从VSaaS服务器获取token
- Get vsaas token
从TUTK VSaaS获取vsaas token
Request
HTTP request
POST https://vsaas-domain/vsaas/api/v1/auth/oauth_token?realm={realm}
Parameters
Header parameters
Authorization : Basic
使用Base64编码 client_id 和 client_secret(这个用客户自己的client_id:client_secret,需要跟预先提供的一致)
Content-Type : application/x-www-form-urlencoded
Required API parameters
Response
Code
200
400
401
例子 :
Request
curl -X POST https://vsaas-domain/vsaas/api/v1/auth/oauth_token?realm={realm} -H 'content-type:application/x- www-form-urlencoded' -d 'grant_type=authorization_code&code=theauthcode'
Response
{ "expires_in": 10800, "scope": "read write", "token_type": "Bearer", "refresh_token": "BqVK9Dv8EdS7fCxVKtIAvlzHCNn9eg", "access_token": "sDDJFhDo80cstYKnWBhq7ErA2dP45Y" }
Refresh Vsaas Token
从TUTK VSaaS更新token
Request
HTTP request
POST https://vsaas-domain/vsaas/api/v1/auth/refresh_token?realm={realm}
Parameters
Header parameters
Authorization : Original access token
Content-Type : application/x-www-form-urlencoded
Required
Response
Code
200
400
401
例子 :
Request
curl -X POST https://vsaas-domain/vsaas/api/v1/auth/refresh_token/ -H 'content-type:application/x-www-form-urlencoded' -d 'grant_type=refresh_token&refresh_token=BqVK9Dv8EdS7fCxVKtIAvlzHCNn9eg&client_id=0Feq934VvPK4CZW9FTdKCtnYHo 2CApSSLxhBDXTK&client_secret=DdVaF0eitGygXCPRt7OtJJGwQHEbWq7A6ddqkDekyqwkxHJG2XrqwmQ5ZOn3tTTDTlpNjkgffXmCnfU26e0frlt8dulI0iz59tuSxdvdq63NHrPUVUNxuzX7mreJs7ip'
Response
{ "expires_in": 10800, "scope": "read write", "token_type": "Bearer", "refresh_token": "QDTw4Q3pp9PuSwe2WOW7QV2bviXuaC", "access_token": "h8kz9fLfuk0x77Co8rJZAveTAhn71L" }
对接资料:
- TUTK将提供的资料:
- realm
- plan id
- client_id
- client_secret
- vsaas backend url
- 客户需要提供资料:
- client_id
- client_secret
- token交换的url
- 用户信息认证的url