API认证方式是涉及API安全的关键因素。一个安全的认证方式不仅要认证API请求的身份信息,还要能够对请求做一定的安全防护。如:防止请求被篡改、防止秘钥泄露、防止请求重放攻击等。因此API网关提供了第一版签名“阿里云APP”的认证方式。
随后随着移动用户逐渐增多,这使API网关不仅要提供对Websocket、HTTP2.0等协议的支持,优化API认证方式。于是推出了“OpenID Connect & 阿里云APP”的认证模式,通过Appkey+Token(用户的登录名/密码获取的)模式来认证API请求,这样不仅仅增加了安全性,还保留了API请求鉴权、APP级别的流量控制等。
然而还有一部分用户的问题没能解决,APP会存在反编译的风险,纯前端Js、Ajax调用不能存储Appkey,且复杂的签名让其计算困难。并鉴于更多的用户开始使用HTTPS,于是阿里云API网关推出了标准的OpenID Connect模式。
这个模式的特点:
- 更安全:客户端不需要存储任何安全的信息,即使token丢失也只会损失这一个用户的信息;且token具备时效性,会在很短的时间内失效。让前端的js或者APP更安全的使用API
- 更简单:不需要进行复杂的签名
使用这个模式的要求
- APP或者前端程序需具备登录态,也就是说,用户需要通过用户名密码登录您的程序或应用
- 为了保证不让Token失效而让用户跳出登录,当Token过期时可以由程序自动发起获取Token的操作
注意事项
- 为了保证用户名密码的安全,建议要使用加密协议发起用户名/密码获取Token的操作
- 为了保证安全应给Token设置时效性,时间长短可以视业务要求而定,不宜过长,过长会存在安全问题。也不宜过短,过短会损伤程序性能
- 为了避免用户名/密码被暴力破解,建议配置流量控制。可以视密码强度而定,控制不宜过小或过大。
这仅是API网关为移动应用、前端程序安全调用API提供的认证方式之一,使用方法请参照:OpenID Connect认证,还会推出更多的安全认证方式。
也可以加入API网关客服服务的钉钉群:11747055