创建令牌系统进行身份验证Web服务调用的最好方法?(Best way to create a TOK

2019-07-18 05:32发布

我想创建一个Web服务架构,可以通过不同的平台被称为如移动设备,应用程序的WinForms,iPhone,黑莓,你的名字。 因此,与像WCF和wsHttp可能会杀死结合这一点,我需要降级到basicHttp兼容性结合。

随着中说,我需要一个系统生成的初始登录(认证)令牌,然后使用该令牌随后所有的电话,我想,以验证认证并允许方法来执行。

任何人有如何去这个提示或建议? 1)生成令牌,什么是涉及安全令牌? 2)有多长,一些用户可能会使用他们的应用时间令牌好,甚至可能是“睡眠”自己的电脑

谢谢你的建议。

Answer 1:

如果你只使用一个令牌,该令牌被首次认证服务器给出的,它可以,如果它的拦截可以用于任何请求。 你唯一的防御是到期时间。

除此之外,它取决于你的实施选择是什么。

一个更安全的系统是一个时间戳(和可能的随机数)添加到每个请求,签署,并且包括与每个请求。 它要求客户端处理身份验证凭据,知道签约的实施,标志牌每个请求。

你可以交替地具有在服务器与每个请求一起(其可以通过OpenID完成)认证或分发一个数目的令牌,并且当需要更多的(可以使用OAuth完成)重新进行身份验证。 如果客户端可以存储凭据,这些可以是无形的给用户。 这些都是比较复杂,需要加密传输诸如SSL对于一些交互的,并且可以说HTTP重定向和处理cookie或其它存储的状态的客户端。 客户端就不必知道如何注册,但如果你能做到SSL,你可能并不需要复杂性摆在首位。

如果你并不需要成为客户端无关,你可能要签名的请求。

对于签约的实现,实例和库,看看亚马逊网络服务,OpenID的,或OAuth的。

关于令牌到期时间,这取决于你的需求。 更长的寿命令牌增加窗口重放攻击。 随机数使得令牌单次使用,但需要在服务器上的多个国家。



Answer 2:

你应该检查出的OAuth 。 它是API认证标准,你可能只需要插入现有的实现为您服务。



文章来源: Best way to create a TOKEN system to authenticate web service calls?