【问题标题】:AD authentication in REST wcfREST wcf 中的 AD 身份验证
【发布时间】:2014-05-13 03:02:25
【问题描述】:

我刚开始向 WCF 服务添加安全性。我开发了一个基于 REST 的 WCF 服务,效果很好。

此服务由 HTTP POST(域外)使用。我需要合并域 (AD) 身份验证。

如何在 WCF 中加入 AD 身份验证?此外,我应该向客户询问与 AD 相关的详细信息吗?请指导我。

更新:

  1. 向 httpTransport 添加了 authenticationScheme="Negotiate"。
  2. IIS 中的托管服务和禁用匿名身份验证。还尝试启用表单身份验证。
  3. 在 wcf 客户端,传递 domain/id/pwd 如下:webrequest.Credentials = new NetworkCredential("user", "userpwd", "domain");

我收到 HTTP 错误 401.2 - 未经授权。由于身份验证标头无效,您无权查看此页面。

我错过了什么吗?

【问题讨论】:

    标签: wcf rest


    【解决方案1】:

    您需要在 WCF web.config 中进行投标配置:

    <bindings>
      <basicHttpBinding>
        <binding name="SecurityByTransport">
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
           </security>
         </binding>
      </basicHttpBinding>
    </bindings>
    

    您可以在此处阅读更多信息:

    http://msdn.microsoft.com/en-us/library/ms733089(v=vs.110).aspx

    对于 javascript ajax 调用,您可以遵循以下建议:

    Cross domain jQuery ajax call with credentials

    【讨论】:

    • 正如我所提到的,服务托管在域之外,并且可以通过 HTTP 访问。那么客户端如何提供身份验证详细信息(用户 id /pwd)?这就是全部(将配置添加到我的 wcf),我必须让它工作吗?
    • 通过调用stackoverflow.com/q/13954080/1959948中的属性实现的@
    • 需要启用 SSL 以进行 AD 身份验证?
    • 对于 WFC 是的...有一种解决方法,但添加 SSL 更容易
    • 服务托管在某个域上。使用此应用程序的客户端由其他供应商开发,将通过 http 调用服务(不知道通过 ajax 或 httpwebrequest)。不过,我已经用 httpwebrequest 进行了测试。我将如何提供身份验证详细信息?我仍然对此持怀疑态度......
    猜你喜欢
    • 2015-04-14
    • 1970-01-01
    • 2011-03-27
    • 2012-03-06
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多