我必须提出一个集成过程,以允许现有系统使用外部数据提供程序。该系统是一个医疗时间表网站,使用ASP.NET MVC,允许患者安排他们的医生预约。
据我所知,你可以看到下图:
所有提供商必须公开我的合同ISuperIntegration
。我不会开发External service 1
和External service 2
,它们将由其他公司开发。
问题出现了:基于这个概念,我可能需要提供商设置服务以正确地与我的网站通信的方式,我想禁止另一个第三方客户消费"External Service 1"
和{{1或者至少让它很难做到。
以下是我正在设置的内容列表:
"External Service 2"
界面。它包含与我的域相关的操作,例如ISuperIntegration
,GetSchedule
等。GetDoctors
。目前我正在考虑将HTTPS与证书身份验证结合使用。这将要求实施者设置他们的基础设施,以便我的网站可以正确地使用数据。
如果我选择基本的HTTP
,实施者就会让他们的服务容易被其他人使用,这是我不想要的。
我希望我的问题很明确。很乐意提供您想要的任何其他解释。
我真的很感激你的回复,提交。谢谢!
答案 0 :(得分:7)
我总是使用HTTPS来做这样的事情。我们只说这是做生意的成本。你根本不能让任何有嗅探器的人从空中抓住那种交通。这就是为什么所有银行等都使用HTTPS来保证安全的原因。
除此之外,Web服务具有非常标准的安全机制,我建议通过HTTPS查看OAuth。有很多实现。
如果您谈论基本网站,我会使用标准的安全机制以及基于组的安全性(归结为用户名+密码)。同样,有很多实现。
基本上我的主要建议是:在安全方面不要发明东西。如果你不是专家,你可能会弄错,并最终得到一些可以被第三方截获或者(更糟)的东西。
答案 1 :(得分:0)
您有几种选择:
答案 2 :(得分:0)
您就像Oracle一样,他们希望人们使用Java语言进行开发,但他们也希望禁止竞争对手在非Oracle虚拟机上运行Java编译代码,或者至少使其难以实现:)
因此,您可以通过使用专利或版权法保护您的界面来做同样的事情。但是,我怀疑它是否具有可专利性或受版权保护:)
答案 3 :(得分:0)
考虑到数据的隐私敏感性,恕我直言,它必须在运输时加密。因此HTTPS不是HTTP。
向那些向您提供服务的人验证您的服务:实际上,这取决于他们,而不是由他们公开的人,同样他们想要保护的是他们的电话。现在假设你有办法让他们做正确的事......
客户端证书在设置启动和运行方面并不昂贵,也不会过高。但是你需要在服务器上注册客户端证书(每次更新!)以获得所需的授权(只是认识到它是有效的证书是不够的:任何人都可以申请(有效签名)证书。 ..)。
但所有这些都是相对轻松的,并且在网络上有很好的文档记录,并且可以在几乎任何选择的平台上完成。
答案 4 :(得分:0)
正如有些人之前提到的那样,您无法保证这些外部公司会使用特定的安全设置来展示您的服务,这取决于他们。
如果您负责开发MVC应用程序和WCF服务,则只能强制某人在WCF服务与外部1和2提供程序之间的层上使用特定的安全设置。 顺便说一句,here是一个很好的教程,如果你想提高你对如何配置WCF安全性的了解,那么这个教程很有用。
外部服务如何让您的服务受到影响。只是想象这是正常的网络代理'行为。
也许贵公司采用它的架构不是这个解决方案的最佳选择