我们在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的盒子互动。
为什么会出现这种情况?如何解决?
答案 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