2014-10-29 85 views
0

我正在开发一个asp.net web api应用程序,并使用OWIN和标识为我的应用程序安全性实现oauth。对于每个注册用户,我还保存一个客户端ID和散列,如here所述。但我不希望其他开发人员能够使用我的api并使用他们拥有的客户端ID(和其他凭据)创建他们自己的应用程序。从其他应用程序开始调用保护web api

可能吗?

+0

这取决于您的应用程序设计。任何人都可以注册并在您的应用程序中有一个帐户? – 2014-10-29 16:59:57

+0

其实我有一个使用这个API的Android应用程序,用户可以从Android应用程序注册。 – 2014-10-29 17:01:50

回答

1

首先,您必须加密移动设备和API之间的网络流量。因为攻击者可以通过代理获取敏感数据(在这种情况下是API令牌)。您还需要进行SSL固定,因为您需要确定公钥是否属于您,否则攻击者会使用相同的方法重新获取敏感数据。 (请查看:https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning

您不应该使用用户名/密码对用户进行身份验证。我建议你使用API​​密钥,因此你可以将用户操作发送到服务器端,如下面的模式。

https://example.com/api/APIKEYOVERHERE/action

ALS可以看这个讲保护您的API - 为REST + JSON开发人员提示。 https://www.youtube.com/watch?v=FeSdFhsKGG0