【发布时间】:2010-11-09 01:18:23
【问题描述】:
我正在寻找有关对我的 WebService 进行身份验证的最佳方式的一些指导。现在,我有一个基于 .NET 3.5 的标准 WebService,以及一个位于该 WebService 之上的 MVC 网站。
MVC 网站使用 OpenID 对用户进行身份验证,在开发阶段,我们只是将用户的 OpenID Claimed Identifier 传递给 WebService 进行身份验证。显然,这不是我们在上线时将发布给客户的内容。
所以我的问题是:向 WebService 进行身份验证的最佳方式是什么?
我玩过的一些 API 使用了身份验证令牌。我们的另一个想法是,在连接到 WebService 后,向客户端传递一个可用于所有传输的加密密钥。
我在这里大声思考,再次感谢任何帮助!谢谢!
...
更新:现在我创建了一个具有 OpenIdURL 属性的自定义 SoapAuthenticationHeader。这用于所有服务调用以对用户进行身份验证。问题有两个方面:
- 如果黑客知道用户的 OpenIdURL,他们可以轻松获得对 WebService 的访问权限。
- OpenIdURL 当前以纯文本形式传递。
所以我可以在连接到 WebService 时将加密密钥传递给客户端,并让客户端加密 SoapAuthentication 标头中的 OpenIdURL。但我不确定如何最好地解决这个问题......
【问题讨论】:
-
当您说“标准 Web 服务”时,您是指传统的 ASMX 服务,还是使用 WCF?
-
这与我所期待的很接近,但如果有人能进一步解释一下,那就太好了。 stackoverflow.com/questions/544388/…
-
我使用的是标准的 ASMX WebService,而 MVC 正在将 WebService 作为服务引用访问(我认为它是 WCF 包装器?)。
标签: c# asp.net-mvc web-services openid oauth