相关疑难解决方法(0)

保护API:SSL和HTTP基本身份验证与签名

在为我们的网络应用设计API时,我们将使用其子域作为"用户名"并生成API密钥/共享密钥.首先,可以使用子域作为用户名吗?我没有看到生成另一个密钥的好处.

不同的API似乎做两件事之一:

  1. 使用SSL的HTTP基本身份验证

在每个请求中,用户名都设置为子域和API密钥的密码.由于我们使用SSL,因此这应该是安全的欺骗.

着名的API:Google Checkout,Freshbooks,GitHub,Zendesk

  1. 使用共享密钥创建请求的签名

通常通过对键/值对进行排序并使用具有共享密钥的HMAC-SHA1来生成签名来实现.然后,签名随请求一起发送,并在另一端验证.

着名的API:Google Checkout,亚马逊AWS

PS:毫无疑问,Google Checkout支持两者

编辑:只需阅读OAuth 2正在删除签名,转而通过SSL发送用户名/密码.

任何人都有关于选择什么的意见:SSL vs Signature?

security authentication api rest digital-signature

64
推荐指数
2
解决办法
3万
查看次数

标签 统计

api ×1

authentication ×1

digital-signature ×1

rest ×1

security ×1