Jad*_*ias 4 language-agnostic security authentication service web-services
我想知道什么是服务和Web服务的最佳身份验证方法:
还有其他选择吗?哪个更好?为什么?
取决于协议.
如果服务请求是明文(http),那么您可能需要考虑安全(https)登录事务,它会获得一个限时令牌来授权将来的请求(会话cookie,实际上).然后,至少窃听者不会获得永久工作的凭据,只是在一段有限的时间内.
同样,即使登录事务不安全,至少如果它只发生一次,则稍微难以窃听.它也稍微难以使用.
如果您不关心安全性,我甚至不会使用用户名/密码,只使用API密钥.相同的东西,但如果用户没有选择它,那么至少它不会与他们的任何其他密码相似,所以当它被盗时它不会影响任何其他东西.
如果你足够关心安全性,所有事情都是通过https完成的,那么你使用的识别机制AFAIK并没有太大的区别.做一些简单的事情.
最后,您可能关心身份验证的安全性,但不关心请求本身的保密性.所以,你不介意窃听者看到飞行中的数据,你只是不希望他们能够发出自己的请求(或欺骗响应).在这种情况下,您可以使用公共/私人密钥对或HMAC的共享密钥对请求(和响应)进行签名.这可能(或可能不)比SSL更容易设置和降低带宽.当心重播攻击.