阿里云api网关认证方式介绍以及如何选择

版权声明:本文为CSDN博主 无、涯 原创文章,可以转载但请注明出处。联系方式:[email protected] 博客地址 https://blog.csdn.net/a704397849 https://blog.csdn.net/a704397849/article/details/89413904

阿里云api网关认证方式介绍以及如何选择

首先,简单介绍下开放api的 签名认证

开放api 签名认证 能够在一定程度上防止信息被篡改和伪造,保障通信的安全,例如:

  • 请求来源(身份)验证合法
  • 请求参数防止被篡改
  • 请求的唯一性(不可复制)

至于为什么开放api签名认证能保证上述提到的数据安全,可以在网上搜下’签名认证’,最好是能看看大公司(如果 阿里云,百度,讯飞等)提供的openapi 需要签名认证访问的接口是怎么去访问的,认真思考不用签名认证方式提供接口和用签名认证方式提供的接口区别在哪,你肯定会有所收获。

阿里api网关有4种认证方式,分别是: 无认证,阿里云app,openId connectId , openId connect & 阿里云app

  • 阿里云 APP
    Appkey签名 , 签名认证信息里面会带上Appkey 。(网关颁发 App key 和 App secret,这个可以管理应用授权.)

  • OpenID Connect
    OpenID Connect有两模式:“获取授权api” 和 “业务api”,

    • 获取授权api : 调用API时先通过用户名密码获取Token( token 后端认证服务器生成保存并返回给前端)。 这个过程就是登录操作。签名认证信息里面没token
    • 业务api : 获取授权的Token(即登录成功)之后的每次API请求都通过Token来验证。 签名认证信息里面有token
  • OpenID Connect & 阿里云APP
    在OpenID Connect基础上增加Appkey认证,签名信息里面有 增加 Appkey 。

  • 两种OpenID Connect认证区别
    OpenID Connect & 阿里云APP需要认证APPkey签名,OpenID Connect则不需要。无论哪种模式,都推荐具有登陆态的APP、服务端或者前端程序来使用。
    使用这两种认证方式建议:配置好流量控制,避免恶意用户进行暴力破解用户名/密码
    参考官方文档 https://help.aliyun.com/document_detail/48019.html

关于认证方式的选择

无认证,阿里云app , OpenID Connect 和 OpenID Connect & 阿里云APP 的选择

  • 无认证 ,直接pass ,不做认证难道要裸奔啊!
  • 阿里云app,上述提到了 签名信息会验证Appkey (不验证Appkey可能这个Appkey被篡改). 如果我们关心访问接口的是哪个应用(每个应用都有appkey 和 app secret)的话选上这个认证。举个实际应用场景:公司后端提供了开放接口,自己公司会用到,其他公司也要用,那这时就可以创建不同的应用分配不同的appkey,通过访问信息中的appkey可以区分是哪个用户,可以做授权控制、收费等操作。
  • OpenID Connect 认证,调用API时先通过用户名密码获取Token,之后的每次API请求都通过Token来验证。总的来说就是,如果接口需要用户账号密码登录后才能访问就 需要 OpenID Connect 认证 ,如果不需要账号密码登录那就不需要这个认证。举个实际应用场景: 一般的App客户端都是会要先登录才能访问使用的,那么给APP客户端的接口肯定是要用到OpenID Connect 认证的; 如果客户端是机器人的话,是没有必要登录的那么给机器端访问的接口就不用OpenID Connect 认证
  • OpenID Connect 认证 & 阿里云app ,根据上述分析,如果 OpenID Connect 认证 和 阿里云app 认证 都要有的话,就选择这种组合认证方式

猜你喜欢

转载自blog.csdn.net/a704397849/article/details/89413904