关于api:搞懂-API-API-鉴权有哪些分类这些重点不要错过

30次阅读

共计 2081 个字符,预计需要花费 6 分钟才能阅读完成。

API 鉴权是保障 API 安全性和可用性的一项重要措施。通过 API 鉴权,零碎能够对用户或者利用进行无效的身份认证和权限治理。一般来说,在理论开发中,咱们应用以下几种 API 鉴权形式:

  1. 根本认证
    根本认证是 API 鉴权的一种最根本模式。此办法要求在每个 API 申请的标头中包含拜访提交的用户名和明码。

长处

  • 简略易用,易于开发和集成。
  • 反对少数 Web 浏览器和 HTTP 客户端。
  • 适宜施行根本平安特色,并仅波及大量申请和响应的场景。

毛病

  • 传输协定应用明文传输,存在被偷盗的危险。
  • 用户名和明码可能会在未加密的状况下从网络上截获。
  • 不适用于高度敏感的数据或 API 场景。
  1. OAuth 认证
    OAuth 是一种现代化的 API 鉴权机制,由 OAuth 联盟开发。它基于受权委派设计准则,容许用户应用第三方应用程序拜访受爱护资源。用户在向客户端受权之后,客户端应用 OAuthAccessToken 作为资源所有者的代表来拜访该爱护资源。

长处

  • 高度安全性。缩小身份透露危险。
  • 反对受权委派和令牌取代的性能,进步了可控性和在场景中宽泛适用性。
  • 能够被部署于实用于挪动、Web 和桌面应用程序等不同设施上。
  • 反对多种鉴权类型

毛病

  • 依赖认证服务器,如果认证服务器呈现问题,API 将无奈应用。
  • OAuth 的设计非常复杂且学习曲线比拟长。
  1. JSON Web Token(JWT)认证
    JSON Web Token 是一种凋谢规范,能够让服务器生成一个密钥签名的 Token,该 Token 蕴含用户、其角色和过期工夫等信息。JWT Token 会发送回客户端,而后传递到后续的 API 申请中,以对接下来的操作进行认证和受权。

长处

  • JWT Token 具备较好的灵活性和简洁性,零碎易于保护。
  • 能够将 TOKEN 注入前后端一起开发中,以改良单页应用程序的性能和效率。
  • 反对自定义尽可能宽泛的内容.

毛病

  • 若私钥密钥或算法不当,会减少结构假装调用的危险。
  • 对于高度敏感的数据或 API 场景,须要大量额定的 Token 的一直解决、比对和验证操作。
  1. API 密钥认证
    API 密钥认证基于零碎提供给客户端一个 API 工具及其机制,并生成 API Key 作为权限标识。该 API Key 能够用于 API 调用前的身份验证,以验证某个客户端是否具备拜访和应用 API 的权限。

长处

  • 第三方开发人员能够管制他们的 Key,治理他们如何应用你的 API。
  • 构建高级破绽扫描、定向攻打和检测流量威逼等状况时, 易于构建 Key 黑名单 / 白名单。
  • 使用方便且无需简单的平安施行。

毛病

  • 如果 API 曾经破解,那么一旦他们领有晓得 API Key,歹意第三方须要很少的资源就能进行创者调用。
  • API Key 粒度较大,受权策略较难建设,泄露危险潜在存在。
  1. HMAC 认证
    HMAC(Hash-based Message Authentication Code)认证是一种基于哈希函数的鉴权技术。服务器和客户端独特保护一个密钥,利用该密钥和申请音讯的摘要来生成鉴权信息,确保申请音讯的完整性和身份认证。

长处

  • HMAC 鉴权比较简单,易于实现,实用于挪动设施等资源受限环境。
  • 能够爱护未加密协议的数据传输中的信息安全,减小数据泄露危险。
  • 安全性较好,能够防止音讯被劫持篡改。

毛病

  • 须要独特保护一个共享的密钥,如果密钥泄露,就可能造成重大的平安问题。
  • 对于非对称加密,须要进行更多的运算工作,导致通信提早减少。

比拟不同 API 鉴权形式的实用场景

从不同的优缺点来看,各种 API 鉴权形式和场景的匹配如下:

  • 根本认证:实用于外部 API,API 拜访人员数量无限,实用于传输敏感度低的数据。
  • OAuth 认证:实用于公共 API,可能应用从用户那里取得的受权来拜访 API。
  • JWT 认证:实用于有独特密钥的微服务零碎外部,可防止每个服务在鉴权时都要依赖 OAuth 受权服务器。
  • API 密钥认证:实用于大量第三方 API 用户,这些第三方 API 用户能够取得一个惟一的 API 密钥,但它们可能不具备 OAuth 所须要的复杂性和灵活性,应用上更加易简略易用。
  • HMAC 认证:实用于传输敏感数据的 API 场景,即便通信初始化过程被拦挡,攻击者也无奈重放此申请。

论断

在理论开发中,咱们能够依据 API 开发者的需要和对数据安全性的思考,并联合各种 API 鉴权形式的优缺点来抉择适合的 API 鉴权机制。一旦确定了 API 鉴权形式,咱们应该时刻留神保护受权信息、监测申请、响应日志与爱护 API 某些细节特色等,以保障给用户提供高质量、高效连贯 API 拜访体验的同时,建设一个衰弱的生态系统。因而,倡议在 API 设计之前就评估鉴权机制,并整体规划, 执行和监测 API 开发周期,为 API 产品的持续增长发明无利的条件。

给大家举荐一个 开源的 API 管理工具 -Postcat,除了 API 鉴权的相干插件,还有其余的更多的宝藏插件,比方 Chatgpt、Apispace、Swagger 同步 URL 等插件。

如果你感觉这个开源我的项目还能够的话,无妨点个 star 反对下他们,如果你感觉还须要持续优化,无妨去提个 Issue.

Github:
https://github.com/Postcatlab/postcat

Gitee:
https://gitee.com/eolink_admin/postcat

正文完
 0