在这种情况下,我应该在我的web服务中使用哪种身份验证?

在这种情况下,我应该在我的web服务中使用哪种身份验证?

问题描述:

嗨我打算做一个网络服务。现在我们的客户将能够从他们的界面调用该方法。我一直在想我应该怎么做认证,我一直在阅读,并不能真正决定。我想将用户名和密码传递给方法。在这种情况下,我应该在我的web服务中使用哪种身份验证?

你有什么建议吗?

常见认证方案是明确定义的,虽然不完美,但是已知的实体。你可以做的最糟糕的事情就是在安全方面“自己动手”。

我假设您的评论“将用户名和密码传递给方法”,您的意思是您想要访问用于访问您的Web服务的凭据。这很好,但不要将凭证作为参数传递给您的方法。

根据您的描述,基于SSL的基本身份验证应为您的应用程序提供足够的保护。这可以在不受信任的环境中(即跨越未知网络)工作,并且应该很容易在客户端实施。

+0

那么用SSL证书进行基本身份验证而不是通过凭证传递给方法?为什么我不应该将凭据传递给方法?感谢您的回答jro – 2010-03-11 21:58:46

+0

向该方法传递凭证会在邮件正文(如果是POST)或URL本身的参数(如果它是GET)中导致未被屏蔽的凭据。在这两种情况下,信息都以清晰的形式发送,而且形式很糟糕。基本身份验证至少可以获得某种级别的编码(不加密,请注意),并将凭证嵌入到请求的标头中。 – jro 2010-03-11 23:42:06

+0

好吧,但我必须找出用户是什么请求的Web服务,以便为每个用户返回正确的信息。这是否是一个好主意,也许通过一个GUID /加密的通行证,然后我为每个用户找到正确的匹配并以这种方式获得正确的信息? – 2010-03-12 01:19:50