你在给公司新配的NAS开启远程访问,或者配置企业微信后台对接云API时,大概率会遇到几个选项:Basic Auth、API Key、OAuth 2.0、JWT……这些不是密码框旁边的装饰词,而是实实在在控制谁能连上、连多久、能干啥的关键开关。
Basic Auth:最直白,也最不推荐
就是把用户名和密码拼成 username:password,再用Base64编码后塞进HTTP请求头:
Authorization: Basic dXNlcjpwYXNz看起来简单,但Base64不是加密——随便找个在线解码工具,一粘就还原出明文密码。所以它只适合内网调试或临时测试,千万别用在公网接口上。API Key:轻量级,适合固定调用方
像阿里云、腾讯云控制台里生成的AccessKey ID + Secret,本质是一对长期有效的凭证。系统设置时填进去,云服务靠它识别“你是谁”,但不校验“你现在是不是本人”。优点是接入快、没交互;缺点是一旦泄露,攻击者能长期冒用,且无法限制具体操作权限。建议配合IP白名单一起用,比如只允许公司出口IP调用。
OAuth 2.0:第三方授权的标准解法
你用微信登录某款笔记App时弹出的授权页面,背后就是OAuth 2.0。它不直接交出账号密码,而是让云服务给你一个有时效的“临时通行证”(access_token)。系统设置里常见的是Client Credentials模式——适用于服务端对服务端调用,比如你的CRM系统要读取钉钉组织架构:
POST /oauth/token HTTP/1.1
Host: api.dingtalk.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&appid=xxx&appsecret=yyy返回的token通常30分钟过期,安全性比API Key高一截。JWT:自包含,适合微服务间通信
JSON Web Token长得像一长串带点号的乱码:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c。它的特别之处在于:签名已验过、有效期写在里面、还能自带用户角色(如 {"role": "admin", "scope": ["read:user"]})。系统设置中启用JWT验证,意味着你不用每次查数据库,靠解析token就能放行或拦截。
多因素认证(MFA):不是独立机制,但必须叠加
哪怕用了OAuth或JWT,只要登录控制台,强烈建议开启MFA。不是所有云平台都默认开,得自己进“账号安全”里手动勾选。手机App验证码、硬件密钥、甚至Windows Hello指纹,都是比短信更靠谱的选择——毕竟短信可能被SIM卡劫持,而WebAuthn密钥插上才认人。
选哪种?看场景:个人小项目用API Key+IP限制够用;SaaS集成优先走OAuth 2.0;内部系统互通考虑JWT;所有管理后台,MFA必须开。