c# - IIS 中的 WCF,http 基本身份验证 - Windows 用户 "security"含义

标签 c# wcf security iis basic-authentication

我使用 http 基本身份验证和 SSL 创建了一个 WCF 服务。 (IIS atm中的临时证书)

这里是相关的配置。

<services>
  <service name="MyNamespace.MyService">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttps"
      name="MyEndPoint" contract="MyNamespace.IMyService" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <!-- These will be false when deployed -->
      <serviceMetadata httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
    <!-- This doesn't do anything in IIS -->
    <behavior name="CustomUsernameValidatorBehavior">
      <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom"
          customUserNamePasswordValidatorType="MyNamespace.CustomUserNameValidator" />
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="basicHttps">
      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

由于我在 IIS 中托管,我无法使用我的自定义用户名验证器,并且 IIS 基本身份验证会尝试针对 Windows 的用户名和密码。

我创建了一个新用户,禁用了本地登录,并将其放入一个新组(没有权限)。用户的唯一目的是确保他们被允许访问该服务,仅此而已。该服务将是在线的,而不是内部的,例如在 Intranet 等中。

我的问题归结为这个,由于我使用的是真实的 Windows 用户,是否存在安全风险/影响?如果是这样,可以采取什么措施来保护此服务/IIS?

是否应该采取措施防止信息“网络钓鱼”,例如,他们是否可以尝试不同的用户名和密码来查找凭据?

顺便说一句,这是 WCF 在 IIS 和 SSL 中使用 Http 基本身份验证的工作绑定(bind)(减去一些其他端点等)。它要求 IIS 安装了基本身份验证,以及用于身份验证的 Windows 用户。我不想针对 Windows 用户进行身份验证。

最佳答案

如果使用基本身份验证(未定义域),IIS 5.0 及以下版本存在 IP 地址泄露漏洞。 请看看这个网站: http://www.juniper.net/security/auto/vulnerabilities/vuln1499.html

关于c# - IIS 中的 WCF,http 基本身份验证 - Windows 用户 "security"含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176143/

相关文章:

ajax - canary --disable-web-security 不再适用于 AngularJS 项目中的 ajax 请求

c++ - wxWidgets:获取一些唯一的机器 ID 以用于验证/注册

c# - Windows 后台服务可根据需要按名称终止进程

c# - 绑定(bind)不适用于 xamarin 形式的 MVVM。未找到 'ItemSelected' 的属性、可绑定(bind)属性或事件,

javascript - 将 @Html.EditorFor "Date"值传回 Controller ,操作值并传回 View 以填充下拉列表

c# - 使用 OData 在我的数据库中插入一条新记录

.net - 为什么不使用 WCF 数据服务来查询数据?

c# - 两个可枚举之间的相等性

asp.net-mvc - 通过WCF服务实现pager

security - ASP.NET MVC : Simple SQL Injection security