Web 服务客户端证书/身份验证最佳实践的解决方案

Posted

技术标签:

【中文标题】Web 服务客户端证书/身份验证最佳实践的解决方案【英文标题】:Solutions to web service client certificates/auth best practices 【发布时间】:2010-12-04 02:08:05 【问题描述】:

我有一个简单的 Web 服务,它有一个 API,允许第三方开发人员访问。 API 大多遵循 REST 原则。

我对通过要求开发人员使用客户端证书来提高 API 安全性的解决方案感兴趣。你们中是否有任何开源解决方案或其他实施建议可以帮助基于 REST 的 API 使用用户级证书进行身份验证?

【问题讨论】:

【参考方案1】:

Python HTTP 库支持client certificates,位于它之上的 urllib 库也是如此。

【讨论】:

【参考方案2】:

我的一般建议是将您的 API 与身份验证例程分开。您的网络服务器应该为您处理交互。

您的客户端证书方案的解决方案取决于您的环境。您尚未在此处发布此内容,但似乎有针对性的 Google 搜索应该让您了解什么是必要的。

由于您向其他方提供 API,因此您确实需要考虑为这些开发人员提供环境支持。您在 REST 基础上做得很好,并且大多数编程环境都将与这些环境很好地互操作。

客户端证书支持在不同环境、平台等方面的支持效率可能会有所不同。此外,当您需要证书时,您现在会影响客户端实施。这几乎肯定会让您处于要求您支持您的客户并让他们使用您的 API 运行的位置。这意味着熟悉其他语言、Web 服务器、框架等。

【讨论】:

以上是关于Web 服务客户端证书/身份验证最佳实践的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Ember.js 和玩!框架身份验证最佳实践

Web API 身份验证最佳实践

WCF与相互身份验证

管理身份验证令牌的最佳实践

使用证书身份验证访问 Web 服务和 HTTP 接口

如何使用客户端证书在Web API中进行身份验证和授权