2009-11-20 30 views
1

这是一个探索性问题。在阅读之后,我感到WCF的身份验证选项对非Microsoft客户端不“友好”,或者需要付出大量努力才能实现。我正在构建一个REST WCF服务,为此我需要某种简单的摘要式身份验证;例如我在Web.config中存储用户名和密码,并与将使用该服务的团队分享。将使用此服务的团队是不熟悉Microsoft工具或帮助程序的传统商店;例如ANSI C/C++,PHP等对非Microsoft客户端的WCF验证“友好”?

无论如何,MSDN tells me摘要身份验证要求服务器在域中。我不希望或不需要此服务在域中。这似乎是一个奇怪的要求。所以我解雇了这个选择。

因此,我阅读了关于NTLM和Windows身份验证的内容,但我担心我只会通过支持微软专有的身份验证方法来增加其他团队的负担;他们不会不得不花费更多的精力来编写这样的服务吗?这些方法似乎本质上依赖于像Windows域和用户帐户的概念,等

回答

1

如果你只是寻找“友善”,那么你可以去基本认证,这是非常支持的地方。

但是,除非加上某种传输级加密,否则密码将以明文形式传输 - 这是一种非常糟糕的安全方式。

几种非WCF技术支持NTLM和kerberos身份验证,但对使用该环境的环境有负担/要求。

您可以查看某种消息级别的身份验证,这意味着凭据将成为消息的一部分,而不是由传输处理。 WCF支持与消息级别安全性相关的WS- *规范。这些规范再次与WCF或Windows无关。

我听起来像你的设置中最简单的方法是使用基本身份验证并使用HTTPS进行传输。

+0

过去的经验让我对基本身份认证的摘要没有太多的考虑,但它可能确实是最好的途径。我的印象是,摘要式身份验证是避免明文凭证传输*和*避免传输加密的良好(不完美)解决方案。我很困惑,为什么它是WCF中的这种“特殊情况”。为什么在*地球上*你需要一个域来做到这一点? –

+0

WCF的摘要认证根据AD验证用户。请参阅http://blogs.msdn.com/drnick/archive/2006/05/12/understanding-http-authentication.aspx以获取更多信息 – HakonB

1

Windows身份验证旨在用于内联网服务那里是你可以用它来管理你的凭证和授权的域控制器使用。

您需要检查Forms Authentication,这可能会满足您的需求。

+0

这是一个WCF(网络服务)问题。 –

+0

我认为它仍然是相关的,因为该技术讲述如何实现它,不仅仅是通过提交_Form来提交button_ – Amirshk

+0

也许更多的WCF链接可以提供帮助:http://msdn.microsoft.com/en-us/ library/bb386582.aspx。 –