如果没有通过TMG获取错误

时间:2017-06-22 15:14:17

标签: c# wcf azure ntlm

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

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

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

  

HTTP请求未经授权使用客户端身份验证方案   '具有基本&#39 ;.从服务器收到的身份验证标头是   '协商,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的盒子互动。

为什么会出现这种情况?如何解决?

1 个答案:

答案 0 :(得分:0)

  

HTTP请求未经授权使用客户端身份验证方案' Basic'。从服务器收到的身份验证标头是“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