当前位置: 首页 > ai >正文

平台介绍-开放API接口-鉴权

       平台的理念是一个组织内部只建一套系统。但是现实情况是,组织内部已经建立了很多系统,是不能一次性替代的,只能先搭起平台,然后逐步开始替换。这样就不可避免的存在其他系统和平台进行交互的问题。

      平台为此设计了开放API接口。其中的核心问题是鉴权。鉴权有多种模式,平台选择了签名鉴权模式,省去了先握手获取Token,然后用Token访问的复杂过程。下面详细说明接口签名鉴权设计原理。

      接入系统首先需要从平台获取应用ID(AppID)和应用密钥(AppSecret)

      接入系统调用平台API时,需要填充如下头信息:

QLM-Open-App-Id:应用ID
QLM-Open-Auth-Mode:固定值Signature
QLM-Open-CA-Signature:签名值,这个是鉴权的核心
QLM-Open-CA-Timestamp:时间戳,单位毫秒
Accept:响应类型,固定为*/*
Content-Type:application/json; charset=UTF-8
Content-MD5:请求Body体数据的 Content-MD5 值

签名计算是鉴权的核心,它可以确保是由AppID对应的客户端发起的,且发起内容在传输过程中没有被篡改。签名过程如下:

1、准备待签名字符串。

第一行:HTTP的请求方法,需大写。距离:GET、POST。

第二行:固定为*/*

第三行:请求头中的QLM-Open-CA-Timestamp值

第四行:请求头中的 Content-Type 值

第五行:请求头中的QLM-Open-CA-Timestamp

第六行:请求地址,注意不含服务器及其端口

注意行以/n结束,不要加/r,另外大小写是敏感的。

2、计算签名。

使用 AppSecret(应用密钥) 对待签名字符串进行 HmacSHA256 加密处理

服务器端校验原理,从请求头里获取应用ID,查询后台登记信息,找到对应的AppSecret,对信息进行同样的处理,最后验证签名是否一样。

基于同样原理,可以对请求body做校验,确保传输过程中,请求没有被篡改。基本方式是客户端对body进行处理,然后将结果存入Content-MD5头中,服务器端收到请求后,做同样处理,然后验证是否一致。

小技巧:平台提供的接口可能会大改,为了保持兼容,接口地址第一段是版本,目前只提供了/V1/*,将来会提供/V2/*。

http://www.xdnf.cn/news/3508.html

相关文章:

  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第五模块·生态征服篇 —— 第二十章 项目实战:从C系统到Java架构的蜕变
  • MATLAB滤波工具箱演示——自定义维度、滤波方法的例程演示与绘图、数据输出
  • 详细说明StandardCopyOption.REPLACE_EXISTING参数的作用和使用方法
  • 虚幻引擎 IK Retargeter 编辑器界面解析
  • 上位机知识篇---PSRAM和RAM
  • 从零开始讲DDR(9)——AXI 接口MIG 使用(2)
  • n8n 键盘快捷键和控制键
  • 基于YOLOV5的目标检测识别
  • Expected SARSA算法详解:python 从零实现
  • 输入输出(python)
  • BBR 之 ProbeRTT 新改
  • DeepSeek-R1模型蒸馏
  • SALOME源码分析: ParaVis
  • C++11新特性_标准库_线程库_std::thread
  • 【Bootstrap V4系列】学习入门教程之 表格(Tables)和画像(Figure)
  • STM32复盘总结——芯片简介
  • 动态规划算法精解(Java实现):从入门到精通
  • Zephyr RTOS架构下的固件升级
  • MySQL数据库上篇
  • CPU:AMD的线程撕裂者(Threadripper)系列
  • 高等数学-第七版-下册 选做记录 习题10-1
  • Python爬虫实战:获取易车网最新特定车型销量数据并分析,为消费者购车做参考
  • 快速集成 Flutter Shorebird 热更新
  • Qt 中基于 QTableView + QSqlTableModel 的分页搜索与数据管理实现
  • 仙盟创梦IDE-智能编程,编程自动备份+编程审计
  • AI 驱动的智能交通系统:从拥堵到流畅的未来出行
  • uc系统中常用命令、标准C库函数和系统调用
  • 从实列中学习linux shell9 如何确认 服务器反应迟钝是因为cpu还是 硬盘io 到底是那个程序引起的。cpu负载多高算高
  • yolov5 本地训练
  • 从读写分离到分布式服务:系统架构演进十阶段深度解析