加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

简析认证加授权如何使API更安全

发布时间:2019-03-07 21:32:11 所属栏目:建站 来源:yuegui_2004
导读:近期在公司推广实施安全开发生命周期流程(SDL),基于目前业务的发展,有很多以API形式提供的数据访问接口,为此专门对所有系统的API接口进行了一次梳理,在梳理过程中发现了部分接口存在的安全隐患,包括未授权访问、数据校验不完整、访问敏感数据等问题。

第二种授权方式是基于属性的访问控制模型(ABAC)。不同于基于静态角色访问控制方式,基于属性的访问控制旨在调用API时根据用户的环境信息动态分配其访问控制权限,环境信息包括如访问时间、角色、API的地理位置、应用的地理位置以及其他决定访问程度的条件的组合信息。可扩展的访问控制标识语言(XACML)是一种基于XML的开放标准语言,是一种用于决定请求/响应的通用访问控制策略语言和执行授权策略的框架,可定义API调用时访问控制规则,这种规则可以在不同API调用时进行动态变换,是一种典型的ABAC环境下的策略描述语言。

第三种是基于Oauth 2.0的代理访问控制方式。基于HTTP的OAuth 2.0框架允许应用程序代表自己或代表用户获取对API资源的访问权限。 因此,它允许用户将访问控制委派给第三方应用程序。 为此,你的API接口必须与OAuth 2.0授权服务器协作,检查每次请求访问token时,都经过授权服务器的校验。授权服务器则向请求方返回响应,指明访问token是否有效,是否是由OAuth提供者生成并且未过期的,同时校验该token能访问的范围。

提到联合身份认证机制,就不得不提到安全断言标记语言(SAML)。安全断言标记语言(SAML)是一种行业标准,已成为企业级身份联合的事实标准。它允许身份提供者以标准方式将有关用户的身份验证和授权信息传递给服务提供者。SAML断言可以由一个安全上下文中的身份提供者发布,并被另一个安全上下文中的身份提供者所理解。SAML断言通常传达有关用户的信息给另一个身份提供者,包括用户所属组织,以及断言的到期时间,无需提供密码信息,验证断言有效性的身份提供者必须与发布断言的身份提供者建立信任关系。在企业内使用SAML的主要场景就是单点登录(SSO),用户无需为每个需要登陆的应用单独维护一套身份信息,仅仅需要在服务提供者处注册登陆一次即可畅通无阻的访问其他应用。

这里介绍一种实现SSO身份认证常用的协议—OpenID Connect。OpenID Connect构建于OAuth 2.0之上,提供联合身份机制来保护你的API。它不但能支持原生和移动应用程序,同样适用于企业级应用,它基于JSON/REST的协议使其应用更加简便快捷,是一种在企业内部实现单点登录更加轻量级的解决方案。不同于Oauth 2.0的访问token,OpenIDConnect使用JWT ID token,token中包含已经身份验证通过的用户的标准格式信息。API可以通过调用身份提供者上的用户信息端点来确定访问控制策略,以验证用户是否属于某个角色。 与SAML断言一样,JWT ID令牌经过数字签名,因此联合身份提供者可以根据与发布它们的身份提供者的信任关系来决定是否接受此token。

认证和授权是API安全的前提,一个安全的API应该有能力识别调用它的系统和终端用户的身份,本文介绍了几种认证和授权机制,来加强API的安全性,在实际应用场景中,可以根据具体情况采用不同的实现方式,也希望大家能够更多交流API安全这方面的经验和问题。

【编辑推荐】

  1. REST API面临的7大安全威胁
  2. WiFi密码还不改?小心电视被蹭网者投屏
  3. 钓鱼新姿势:全屏API伪装浏览器界面方式分析
  4. Web前端密码加密是否有意义?
  5. 安全趣闻 | “ji32k7au4a83”竟然是一个典型弱密码
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读