WCF认证/ WCF REST认证.不同的方法
本文关键字:WCF 认证 方法 REST | 更新日期: 2023-09-27 18:08:50
我做了一个WCF REST服务,它从OLAP数据库中消费数据,它不是微软的技术,最终,我想把许多其他的OLAP数据库连接到一个单一的平台。
经过大量阅读,WCF REST的安全性非常令人沮丧,总之,我有2个选择,一个是使用基本身份验证,通过网络暴露用户名和密码,或者更好一点,使用SSL的基本身份验证,现在我需要从web服务器获得不同的证书。或者使用Digest Authentication,它使用加密的密码并对数据库进行身份验证,这是最好的选择,但在我的情况下,这是不可能的,因为我没有使用微软技术,安全性是在不同的平台上,我不能使用MD5加密我的密码,因为数据库无法读取加密的密码。
结论是我只能使用SSL的基本身份验证,但这是正确的做法吗?我看到很多产品在做类似的事情我做什么,当他们登录,我没有看到https,但只有http,他们不安全,容易被黑客攻击吗?
我不是想做一个防弹网站,而是一个简单的网站,使用基本身份验证太简单了,或者实际上它几乎就像给出密码,但使用https,这是过度杀伤吗?
所以,在REST令人沮丧之后,让我们不要使用REST,使用正常的WCF,从我所读到的,它们都有同样的问题。
请给我一些指导。我想我输了。
多谢
PlayKid
通常,基本身份验证用于常规网站,是的,如果与http一起使用,用户名和密码通常会超过可读行。Https已经更好了,因为信息是在线加密发送的。但在实践中,您只在商业或银行应用程序中看到这种情况。你不能使用MD5,这很遗憾,因为那是一种中庸之道的方法。
因此,根据您要公开的应用程序,使用简单的http或更复杂和更安全的https。
顺便说一下,大的安全问题通常与SQL注入或黑客能够在您的网站上获得一些管理员级别的特权有关。这样他们就可以访问大量信息,同时嗅闻您的线路并获得单个用户密码组合相对无害,如果您采取必要的预防措施和应对措施。基本上,使用SSL的基本身份验证确实非常安全,如果将其暴露给外部世界,则应该使用。
我以前见过一种最简单的破解方法,如果您只想验证(不授权端点)已知客户端的客户端,请使用:
OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name
这将提供访问服务的用户名,如果有效用户正在访问服务,则使用LDAP与DB或AD验证该用户,并在每个请求中添加用户需要作为请求的一部分发送的加密密钥。通过这种方式,您可以从请求中知道用户名和加密密钥。
您也可以将此与基本身份验证一起使用,以确保其不是不安全的