我遇到的问题是,内部用户可以访问经常在我们内部网络之外旅行的用户的信息。
现在的工作方式是我们有一个程序访问WCF服务,该服务托管在面向公众的安全网站上。当用户使用我们的内部网络时,该服务正常。但是,一旦用户离开网络(比如去酒店),他们就会得到401:不是授权错误。
有时会出现以下根本原因
有一种解决方法,我并不太兴奋,它是手动将凭据(域/用户名和密码)添加到Windows凭据管理器,直到凭据被清除然后进程再次开始。发生这种情况时,用户可以在浏览器中导航到服务并在程序中成功使用它们。
这是我们用于WCF服务的绑定
<basicHttpBinding>
<binding name="secureHttpBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
根据Windows Credential Manager修复程序,我们应该能够使用Users Active Directory帐户来管理此服务的身份验证。
我只是想知道是否有可能部署一项服务,允许远程用户访问,因为他们已经成功登录了我们域名的帐户。
答案 0 :(得分:0)
将内部端点直接暴露给外界并不是一个好习惯。您始终使用外部总线,因此您无需打开任何防火墙端口。例如,您可以更好地使用Azure Service Bus,它更安全可靠,然后允许直接连接到您的内部网络。
将本地应用程序连接到云
Service Bus Relay通过允许本地Web服务投影公共端点,解决了本地应用程序与外部世界之间进行通信的挑战。然后,系统可以访问这些Web服务,这些服务继续在地球上的任何地方运行。