【问题标题】:Enable SSL with windows authentication for WCF over basicHttpbinding通过 basicHttpbinding 为 WCF 启用带有 Windows 身份验证的 SSL
【发布时间】:2011-05-27 18:00:27
【问题描述】:

我已经阅读了这篇文章How can I use WCF with only basichttpbinding, SSL and Basic Authentication in IIS? 如果我将 clientCredentialType 设置为“Basic”,它似乎工作正常,但是当我将 clientCredentialType 设置为“Windows”时,匿名用户可以访问我的服务。

有人可以对此有所了解吗?如何禁用匿名用户。我已经在 ISS 7.5 中禁用了它。基本身份验证和 Windows 身份验证有什么区别?

更新 当我将 clientCredentialType 设置为“Windows”并浏览到我的服务 url https://ServerName/myservice.svc,I 时,我会提示登录窗口,但是我可以在不输入用户名和密码的情况下输入 OK,我仍然可以看到服务信息页面。但是如果我在虚拟目录上创建一个.html页面,那么我必须输入用户名和密码。否则我看不到页面。

【问题讨论】:

    标签: wcf wcf-security


    【解决方案1】:

    基本身份验证采用任意用户名和密码。 Windows 身份验证发送当前登录用户的凭据(假设用户正在运行 Windows),并且仅在客户端和服务器位于同一域中时才真正有用。

    由于通过 Internet 发送 Windows 登录信息是一个潜在的安全问题,Firefox 和更新版本的 IE 不会发送凭据,除非明确告知(FF 的配置设置,将站点移动到IE 的“可信”区域)

    【讨论】:

    • 但是为什么当我将 clientCredentialType 设置为 "Windows" 时,匿名用户可以访问我的服务。即使我禁用了匿名用户。
    • 首先 - 服务器是否与您在同一个域中?接下来,您如何禁用匿名访问?在代码中?在配置?在 IIS 中?
    • 是的,服务器与我在同一个域中,我正在禁用 IIS 中的匿名访问。
    • 我不确定绕过登录。我认为这是一个 IIS 问题,而不是 WCF。但我只想提一下,仅仅因为您可以访问服务元数据页面并不意味着您的服务是公开的。元数据通常通过与实际服务不同的端点(mex 端点)公开,您可能只在设置 Windows 身份验证时修改服务的端点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 2011-06-08
    • 2023-03-02
    相关资源
    最近更新 更多