我正在寻找有关对我的 WebService 进行身份验证的最佳方式的一些指导。现在,我有一个基于 .NET 3.5 的标准 WebService,以及一个位于该 WebService 之上的 MVC 网站。
MVC 网站使用 OpenID 对用户进行身份验证,在开发阶段,我们只是简单地将用户的 OpenID Claimed Identifier 传递给 WebService 进行身份验证。显然,这不是我们在上线时将发布给客户的内容。
所以我的问题是:向 WebService 进行身份验证的最佳方式是什么?
我玩过的一些 API 使用了身份验证令牌。我们的另一个想法是,在连接到 WebService 后,向客户端传递一个可用于所有传输的加密密钥。
我在这里大声思考,再次感谢任何帮助!谢谢!
...
更新:现在我创建了一个自定义的 SoapAuthenticationHeader ,它有一个 OpenIdURL 属性。这用于所有服务调用以对用户进行身份验证。问题有两个方面:
- 如果黑客知道用户的 OpenIdURL,他们就可以轻松获得对 WebService 的访问权限。
- OpenIdURL 当前以纯文本形式传递。
因此,我可以在连接到 WebService 时将加密密钥传递给客户端,并让客户端加密 SoapAuthentication 标头中的 OpenIdURL。但我不确定如何最好地做到这一点......