0

所以我正在使用 jQuery Mobile 开发一个移动网络应用程序,我需要从应用程序的远程服务器请求一些数据。我从 C# SOAP Web 服务或从IHttpHandler返回 JSON 的服务中获取数据。在返回任何数据之前,我需要以某种方式通过 Web 服务/处理程序进行身份验证。我希望使用 ActiveDirectory,并通过 AJAX 请求以某种方式将用户名和散列密码传递给服务器。问题是,在 C# 中使用 ActiveDirectory 进行身份验证的示例涉及将纯文本用户名和密码传递给PrincipalContext.ValidateCredentials. 有什么方法可以安全地将凭据传递给 C# 服务并让它通过 AD 进行身份验证,而无需知道纯文本密码?

编辑:我想也许我可以在客户端散列密码,将其传递给服务器,让服务器获取所请求用户的 AD 密码并以相同的方式对其进行散列,然后进行比较,但无法获取 AD 密码

编辑:查看aSSL

4

1 回答 1

1

如果您正在使用 jquery ui 开发移动网络,它不会存在于设备上,它将存在于您的网络服务器上(iis,如果它是一个网络应用程序)。您的应用程序可以使用 Windows 身份验证针对它需要查询的服务进行身份验证,但这取决于用于运行应用程序的用户/在您这边使用的模拟。
问题是您的应用程序和此服务如何在它们和互联网之间进行通信。如果互联网无法访问该服务,我不知道您应该担心多少安全传输。
您还可以查看基于 ad fs / ad fs 2 的安全解决方案和 wcf 集成选项,例如此处的说明。
这些解决方案实现了您正在谈论的概念,AD FS 是对传递的凭据进行身份验证/验证并向应用程序/服务返​​回令牌的服务。通常与 AD FS 的通信使用 ssl 来保护传输层,并对消息进行签名,以确保没有人在中间弄乱它们。
当然,您可以自己实现这样的机制。您不需要从活动目录中获取密码,您只需使用此处提供的代码示例查看是否可以验证传递的凭据(用户名/密码)

于 2012-06-08T16:00:04.860 回答