论文部分内容阅读
随着分布式web service和云计算的发展越来越迅速,逐渐渗透到各行各业。应用程序接口(API)是云技术领域的关键基础。API为外部的实体例如web客户端、桌面应用程序提供了与云端服务进行交互的统一的方法,通过API的数据越来越多。然而,在目前的密码反模式(password anti-pattern)中,API需要收集并使用属于外部实体的用户密码来获取用户的信息,用户需要向不同的API散步自己的密码,因此密码反模式威胁着API的安全和伸缩性。比较稳妥的模式应该是,显式的授权发生在用户所在的外部站点而不是隐式地发生在提供服务API的站点,用户不需要向API提供自己的密码。此外由于该授权(以及用户可能许可的其他授权)发生在用户所在站点,因此用户还可以在所在的站点及时撤销某个授权。本文所研究的OAuth2在Restlet框架的基础上提供了一个REST风格的授权系统授权码模块,使得应用可以安全地通过API(通常是RESTful)访问受保护的资源(通常但不完全是特定用户的身份信息)。本文着重阐述该系统六大端口的作用与实现,并且重点解释了Authorization Code这一授权流程的应用场景与实现细节。本系统模块允许客户端通过授权码的授权流程取得令牌,然后客户端发送请求给资源服务器中包含了该令牌,这样资源服务器就可以验证信息确实是从客户端发送过来的又能使得客户端获得授权。在OAuth的应用场景中,API的访问之所以能够保护用户的身份信息,根本原因就是只有当用户同意客户端访问用户数据时授权服务器才会提供客户端所需的访问令牌。OAuth2授权系统为Cisco的Eagle平台中的各种web服务提供了一种抽象的、高扩展性的、高性能的授权机制,通过授权令牌保证服务间调用的安全,服务间的访问得到正确的控制。思科Common Identity平台负责了对客户身份的统一管理与认证,而OAuth2授权系统在此前提之下,使得思科的各个web服务之间的调用得到了正确的授权与控制。