金融科技/银行应用程序上可能的API授权技术

问题描述 投票:0回答:1

假设我们已经实现了提供金融/银行服务的RESTful API,并希望将其提供给内部开发团队以实现本机移动客户端应用程序。

从这种意义上说,该应用程序因此将是public并且可以访问的API,因此WHAT可以对其进行访问,需要以各种可能的方式对其进行授权。

想到的第一个解决方案是提供client_idclient_secret,并让开发人员使用Authorization http标头签署每个请求:

Authorization: APP client_id:base64(HMAC-SHA256(content, client_secret))

只要服务器“知道”客户端的秘密,API使用的授权将顺利进行。

我对此不满意:

  • 每个应用实例都具有相同的client_secret
  • client_secret是不可撤消的
  • 即使被混淆,也很容易通过应用程序的源代码公开
  • 总共,可能会收到来自未知来源的请求

另一方面,我不想弄乱用户体验,重定向和诸如OAuth之类的额外登录请求。

此类应用还有哪些其他授权技术?著名的金融科技/银行公司遵循哪种授权途径?

rest api security authentication authorization
1个回答
0
投票

不认证应用程序,不认证使用它的用户或实体。

不需要像“注册”这样的不需要身份验证的端点。您也可以独立于身份验证来限制访问,也可以基于流量来源等来限制访问。这通常是在基础结构中完成的,因此您不必具有代码。

通常,从安全角度来看,已发布的客户端应被视为用户控制的。即它们生成的数据也应视为完全由用户控制,即使已签名,混淆或其他任何形式。

到目前为止,从后端的角度来看,您还没有提到任何用例,在这种情况下,对客户端软件进行身份验证会增加价值。

我实际上确实在通过应用程序和Web界面(以及多个admin界面)进行访问的银行后端​​。我们不在乎用户在后端使用哪个ui,我们仅对用户进行身份验证。不需要身份验证的内容(国家/地区列表,地址/ iban解析器等)无需任何内容就可以使用。我什至不知道访问是否在操作中受到限制或控制,这不是我们的工作。

© www.soinside.com 2019 - 2024. All rights reserved.