【问题标题】:If not go through TMG get error如果不通过 TMG 得到错误
【发布时间】:2017-11-25 23:11:33
【问题描述】:

我们在 sharepoint 2013 Foundation 中托管了一个自定义 Web 服务。如果我们在客户端的主机文件中添加它,它就可以正常工作,

web service url...   //go to TMG ip address e.g.  10.0.0.100

但是当我们从客户端的主机文件中删除它时,我们会得到错误,

HTTP 请求未经客户端身份验证方案授权 '基本的'。从服务器收到的身份验证标头是 '协商,NTLM'。

我们正在使用具有以下设置的 basicHttpBinding,

 BasicHttpBinding binding = new BasicHttpBinding();
 binding.Security.Mode = BasicHttpSecurityMode.Transport;
 binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;

我们仍然可以通过让客户端先通过 Microsoft TMG Fore 前端服务器,然后再访问托管我们的自定义 wcf 服务的服务器来解决问题。

但现在我们计划将托管的 wcf 服务移至 AZURE,但不确定 TMG 将如何与 AZURE 的盒子交互。

为什么会出现这种行为,我该如何解决?

【问题讨论】:

    标签: c# wcf azure ntlm


    【解决方案1】:

    使用客户端身份验证方案“基本”未授权 HTTP 请求。从服务器收到的身份验证标头是“Negotiate,NTLM”。

    错误意味着您的 WCF 服务需要基本(用户名和密码)身份验证,但您的客户端通过了 Windows NTLM 协商票证。如果您在主机文件中配置 TMG IP,TMG 将作为ADFS 代理工作。您必须已设置内部 ADFS 基础结构并已连接到 Office 365。 TMG 将对请求进行身份验证并将结果传递给您的 WCF 服务。

    但现在我们计划将托管的 wcf 服务移至 AZURE,但不确定 TMG 将如何与 AZURE 的盒子交互。

    迁移到 Azure 后,您还可以使用 Azure PaaS 创建虚拟机并在其上安装任何软件。但不建议这样做。 Azure Active Directory 应用程序代理可以提供 ADFS 集成功能,即recommended way,以替换 Azure 上的 TMG。有关如何使用 Azure Active Directory 应用程序代理,请参考以下链接。

    How to provide secure remote access to on-premises applications

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-05
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多