2015-07-20 67 views
0

我遇到的问题是内部用户可以访问内部网络以外经常出差的用户的信息。允许外部用户与内部服务进行通信

现在工作的方式是我们有一个程序访问一个WCF服务,该服务托管在面向公众的安全网站上。当用户使用我们的内部网络时,服务工作正常。但是,一旦用户离开网络(比如说去酒店),他们会得到401:不是授权错误。

具有以下根本原因

有时

  1. 请求是未经授权的客户端身份验证方案“匿名”。收到的头是'NTLM,协商'
  2. 系统无法联系域控制器来处理身份验证请求
  3. 此工作站与主域之间的信任关系失败。

有一种变通方法,我不会有太多完全高兴,这是手动添加凭据(域/密码为用户名)到Windows凭据管理器,它的工作原理,直到地步凭据被清除,然后该过程再次开始。发生这种情况时,用户可以浏览浏览器中的服务并在程序中成功使用它们。

这是我们正在使用WCF服务

 <basicHttpBinding> 
    <binding name="secureHttpBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647"> 

     <security mode="Transport"> 

     <transport clientCredentialType="Windows" /> 

     </security> 

    </binding> 
    </basicHttpBinding> 

它似乎基于Windows凭据管理器修复,我们应该能够使用用户的Active Directory帐户来管理身份验证此服务的绑定。

我只是想知道是否可以部署一项服务,允许远程用户访问,基于他们已成功登录到我们的域名帐户。

回答

0

将内部终结点直接暴露给外部世界,这不是一个好习惯。您总是使用外部总线,所以您不需要打开任何防火墙端口。例如,您可以更好地使用Azure Service Bus,它更安全可靠,然后允许直接连接到您的内部网络。

连接本地应用程序到云

服务总线继电器允许本地Web服务项目公共端点解决了本地应用和外部世界之间沟通的挑战。系统可以访问这些Web服务,这些服务可以继续在全球任何地方的本地运行。

http://azure.microsoft.com/en-us/services/service-bus/

相关问题