首页 > OOP语言 > 其它 > 正文

IBM SmartCloud Entry 的 Web services 安全机制揭秘
2014-02-25 00:00:00   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

环境准备

一个运行的 IBM SmartCloud Entry 系统

Eclipse 3.6 或者更高版本

基于 Restlet 的 Web Service 安全机制

开始之前

在正式开始之前,先对本文将用 到的一些名词做基本的解释。

Restlet:诞生于 2005 年,是一个针对 Java 语言开发人员的开源项目。Restlet 旨在 以一种简单的方式,向开发人员提供各个应用场景下实现 REST WebService 的方法。目前 Restlet 的最新稳定版本是 2.1.1,本文的所有内容都是基于 Restlet 2.1.1 来进行说明。

Dojo:Dojo 是一个强大的前端框架,它提供了方便的 Ajax 方法、丰富的小部件、数据 结构、辅助函数、效果和布局帮助。Dojo 是一个较为活跃的开源项目,截止到目前,Dojo 的最新版本是 1.8.1。本文中的所有实现将基于 Dojo 1.8.1。

jQuery:jQuery 是一个优秀的轻量级 JavaScript 框架。可以方便的提供 Ajax 交互, 各种动画效果。jQuery的应用文档很详细,同时还有许多成熟的插件可供使用。本文中所有 实现将基于 jQuery1.9.1。

HttpClient:Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能 丰富的、支持 HTTP 协议的客户端编程工具包。

cURL:由瑞士 curl 组织开发,是一个综合的网络传输工具。更多内容,请参考 cURL 网 站。

基于 Restlet 的 WebService 安全机制

Restlet 框架自带了一套 完整的用户认证机制,IBM SmartCloud Entry 的用户认证机制正是基于 Restlet 实现。 Restlet 框架的用户认证机制如图 1 所示。

图 1. Restlet 的认证机制

\

从图中可以看 出,Client 若没有通过认证,是没有办法接触到 REST 资源。

IBM SmartCloud Entry 在版本 3.1 以前,只支持 HTTP Basic Authentication 的认证方式。从版本 3.1 开 始,在原来的基础上,新增了 Token Authentication 的认证方式,用户可以根据自己的需 要选用相应的认证方式。若客户端同时带有两种认证,IBM SmartCloud Entry 将只按照 HTTP Basic Authentication 进行认证。接下来,将简要介绍如何在各个客户端编程以通过 这两种认证。

HTTP Basic Authentication

HTTP Basic Authentication 可以说是最简单的 HTTP 认证方式。它仅需要静态的、标准 HTTP header 就能完成认证。同时,它不需要登录页面,可以将用户名和密码直接通过 URL 传入,例如: http://username:password@www.example.com/path。但是,另一方面,Basic Authentication 几乎没有任何机密性,用户名和密码仅仅是经过 BASE64 编码就从客户端传 递到服务器端。

客户端想要通过 HTTP Basic Authentication,首先需要确认用户名 和密码是正确的,然后将用户名和密码通过一个“:”连接,进行 BASE64 编码,编码的结果 与“Basic ”结合置于一个叫“Authorization”的 HTTP header 中,即可通过认证。

IBM SmartCloud Entry 提供一个 REST API,POST “//hostname:port/unsecured/cloud/api/auth”,可以用于验证所提供的用户名和密码是 否合法。下面的例子将用到这个 REST API 以验证用户名和密码。

相关热词搜索:

上一篇:利用python实现批量自动化运维脚本案例
下一篇:使用DrMemory发现内存编程错误

分享到: 收藏