【问题标题】:WCF authentication "friendly" to non-Microsoft clients?WCF 身份验证对非 Microsoft 客户端“友好”吗?
【发布时间】:2023-03-17 02:54:01
【问题描述】:

这里是一个探索性问题。经过一番阅读,我有一种下沉的感觉,即 WCF 的身份验证选项对非 Microsoft 客户并不“友好”,或者需要大量的努力来实现。我正在构建一个 REST WCF 服务,我想要对其进行某种简单的摘要身份验证;例如我将用户名和密码存储在 Web.config 中,并与将使用该服务的团队共享。将使用此服务的团队是不熟悉 Microsoft 工具或助手的传统商店;例如ANSI C/C++、PHP 等

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

所以我阅读了有关 NTLM 和 Windows 身份验证的信息,但我担心我只支持 Microsoft 风格的专有身份验证方法会给其他团队带来负担;他们不需要付出更多的努力来针对这样的服务进行编码吗?这些方法似乎本质上与 Windows 域和用户帐户等概念相关。

【问题讨论】:

    标签: wcf security authentication


    【解决方案1】:

    如果您只是寻找“友好性”,那么您可以选择几乎所有地方都支持的基本身份验证。

    但是,除非这与某种传输级别的加密相结合,否则密码将以明文形式传输 - 安全方面的情况非常糟糕。

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

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

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

    【讨论】:

    • 过去的经验让我更喜欢摘要而不是基本身份验证,但它确实可能是这里最好的路线。我的印象是,摘要式身份验证是一种很好的(不是完美的)解决方案,可以避免明文凭证传输避免传输加密。我很困惑为什么它在 WCF 中是这样一个“特殊情况”。为什么在地球上你需要一个域来做到这一点?
    • WCF 的摘要式身份验证根据 AD 验证用户。请参阅blogs.msdn.com/drnick/archive/2006/05/12/…了解更多信息
    【解决方案2】:

    Windows 身份验证旨在用于Intranet 服务,其中有一个域控制器可用于管理您的凭据和授权。

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

    【讨论】:

    • 这是一个 WCF(Web 服务)问题。
    • 我认为它仍然是相关的,因为该技术讨论了如何实现它,而不仅仅是拥有一个带有提交按钮的 Form
    • 也许更多的 WCF 链接会有所帮助:msdn.microsoft.com/en-us/library/bb386582.aspx
    • 表单身份验证方法似乎依赖于 IIS。我必须考虑到这个 WCF 服务可能是服务托管的,而不是 IIS 托管的。
    猜你喜欢
    • 2011-04-09
    • 2013-10-07
    • 2015-06-13
    • 1970-01-01
    • 2018-02-12
    • 2012-08-01
    • 2023-03-20
    • 2012-04-15
    • 2020-03-03
    相关资源
    最近更新 更多