提示
X
本案例来自tskb,请前往tskb修改源内容:立即前往
'>

【AD】API认证方式

|

问题描述

客户端使用RESTful API对服务器的资源进行访问和操作时,需要优先进身份认证。 主要有两种认证方式:HTTP Basic Auth和Token Auth

根因

1、HTTP Basic Auth
Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用Basic Auth。

2、Token Auth
Token Auth并不常用,它与Basic Auth的区别是,不将用户名和密码发送给服务器做用户认证,而是向服务器发送一个事先在服务器端生成的token来做认证。因此Token Auth要求服务器端要具备一套完整的Token创建和管理机制,该机制的实现会增加大量且非必须的服务器端开发工作,因此Token Auth用的并不多。

解决方案

见总结部分

建议与总结

1、HTTP Basic Auth
优点:开发简单且容易调试
缺点:每次请求都携带用户名密码,存在安全泄露的风险
格式如下图:
curl -ku  admin:sangfor123  https://10.2.30.126/api/slb/snat-pool


2、Token Auth
优点:安全性较高,不用担心密码泄露
缺点:操作较复杂,需定期更新token

使用步骤:
①申请Token并分配有效期
②使用请求头部x-token-sangforad传输Token
超过有效期Token失效
用后注销Token失效

格式如下:
第一次申请token,使用JSON格式,参考如下。

curl -k https://10.2.30.126/api/token  -X POST -H 'Content-Type:application/json' -d '{"username":"admin","password":"sangfor123"}'


使用申请的token作为凭证去获取API参数

curl -k https://10.2.30.126/api/slb/snat-pool -H 'x-token-sangforad:3cd8d4b8-294c-11eb-a811-fefcfe6d9c5a'

排查内容

HTTP Basic Auth和Token Auth两种方法都可以选用,看业务场景和客户要求,选择其一即可。

此外,要能获取到API信息,必须提前要开启API的读取权限,如下图


我要分享
文档编号: 217729
作者: admin
更新时间: 2023-04-14 15:15
适用版本: