当前位置 : 主页 > 手机开发 > 无线 >

在移动应用上保护第三方API调用

来源:互联网 收集:自由互联 发布时间:2021-06-10
我有一个API,使用以下方法: https://api.example.com/services/dosomething 我向三个不同的移动应用程序提供此服务,每个应用程序有数百个用户.当用户登录移动应用程序时,需要调用我的API. 我知道
我有一个API,使用以下方法:

https://api.example.com/services/dosomething

我向三个不同的移动应用程序提供此服务,每个应用程序有数百个用户.当用户登录移动应用程序时,需要调用我的API.

我知道为三个移动应用程序中的每一个提供不同的API密钥并使用它进行HTTP基本身份验证是不安全的,因为API密钥将被不安全地存储在设备中,任何人都可以接受它并且不好用它.

OAuth2的方法不起作用,因为我只有三个客户的信息,而不是数百个用户的信息.

在移动设备上保护API调用的最佳方法是什么?

在您的情况下,使用OAuth2的方法很好:移动应用程序(客户端)从资源所有者(您的用户)接收委派以调用资源服务器(您的API)上的受保护资源.

您只有关于客户的信息,因为OAuth2不是专门用于您的用户身份验证,而是专门为您的客户授权.
客户端使用客户端ID进行标识.在您的情况下,如果您想知道哪个客户端调用您的资源服务器,那么每个客户端都应该有一个专用的客户端ID.您还可以使用其发送的请求中的其他信息(如IP地址或自定义标头)来识别它.

如果您想知道您的用户是谁,您应该实现OpenID Connect扩展.此扩展程序在基于OAuth2的授权服务器之上运行.
用户的认证由授权服务器执行.向ID令牌发布关于用户的信息.客户端(或移动应用程序)不必获取或存储用户的凭据.

有一个excellent video where the both protocols are explained(特别是从4:44到11:00).

网友评论