OSB (Oracle Service Bus)上代理服务的安全设置(一)
2014-09-09 15:57
971 查看
就安全而言,最常见的两个概念,就是Authentication和Authorization。在OSB(Oracle Service)里,如果你对你的Proxy Service什么都没设置过,那么一般来说,你除了使用HTTP进行传输,没有身份验证(Authentication),没有权限校验(Authorization)。
如果你想做多一些安全的约束,例如,你想给外网系统调用你的服务,不想让谁都可以调用你的服务,那么,最简单的方式,你可以做两件事:
1、HTTP Basic身份验证
该选项要求客户端调用服务时需要输入身份信息(Basic验证是在HTTP层面的事情),密码走的是Base64加密(其实不算加密),服务器拿到用户名密码后在服务器上的Realm上验证。这个Realm默认的时候就是OSB/WLS底下管理的内置的一个LDAP,我们通常启动WebLogic的那个帐号就是这个LDAP里面的帐号。
可以看到,除了HTTP Basic,还可以选择客户端证书或者Custom的验证,这些相对复杂一些,本文不再深入讲了。
2、权限校验
默认的情况下,代理服务是Everyone都可以调用的。有了身份验证,系统知道和确认了当前调用人是谁,你就可以进一步约束哪些用户可以调用哪些服务。下图是进入这部分设置的第一步界面:
然后,在“Transport Access Control”部分可以点击你的代理服务:
可以看出,默认的做法是“Group: everyone”可以访问。点击“Add Conditions”,你就可以定制自己的逻辑了。例如“User=?”,或者“Role=?”,或者“Group=?”的属于可以访问,如下图:
在这几个页面,你还可以看到,OSB提供一种所谓Custom Authentication的设置,即通过XPath在报文中找出Username和Password来做身份验证。因为如果不是这种Custom的方式的话,用户名和密码是保存在HTTP的头上的(你可以看看HTTP协议规范)。通过Custom的方式,客户端的代码可以更加简单,因为用户名和密码可以是某方法的参数,这些参数可以用XPaht找到。如下图:
3、HTTPS传输
你或许担心,密码明文或者传输,那可怎么办呢?简单的做法就是使用HTTPS进行传输,设置也很简单,上面的第一个图就有这个选项。
但是使用起来,这选项并不是那么简单的,还有不少事情要做,这些都是所谓证书的问题。
如果你使用正式购买的证书,安装在OSB服务器上,一般“正式”的证书,其根已经在各个客户端上安装且信任,服务调用时不会再有信任的问题。如果你不想花这部分前,你想自己搞证书服务器或者使用自己给自个签名的证书,也可以,但是你就要把证书也安装在各个客户端上,让各个客户端信任你的这个证书。这种方式不同的客户端的使用方法,设置方法可能不同,这是比较烦的地方。当然,也可用编程的方式,每次调用服务时用API来做信任证书的事情,但这个也不简单。
4、WS-Security
这是高级活,其基本要求也是有证书(PKI那套),使用起来有不少的功能,包括部分加密,签名,反抵赖等等,令人羡慕。不过用起来也不简单,有时间再详谈罗。
转载地址:http://www.cnblogs.com/alfredxiao/archive/2010/09/22/osb_security1.html
如果你想做多一些安全的约束,例如,你想给外网系统调用你的服务,不想让谁都可以调用你的服务,那么,最简单的方式,你可以做两件事:
1、HTTP Basic身份验证
该选项要求客户端调用服务时需要输入身份信息(Basic验证是在HTTP层面的事情),密码走的是Base64加密(其实不算加密),服务器拿到用户名密码后在服务器上的Realm上验证。这个Realm默认的时候就是OSB/WLS底下管理的内置的一个LDAP,我们通常启动WebLogic的那个帐号就是这个LDAP里面的帐号。
可以看到,除了HTTP Basic,还可以选择客户端证书或者Custom的验证,这些相对复杂一些,本文不再深入讲了。
2、权限校验
默认的情况下,代理服务是Everyone都可以调用的。有了身份验证,系统知道和确认了当前调用人是谁,你就可以进一步约束哪些用户可以调用哪些服务。下图是进入这部分设置的第一步界面:
然后,在“Transport Access Control”部分可以点击你的代理服务:
可以看出,默认的做法是“Group: everyone”可以访问。点击“Add Conditions”,你就可以定制自己的逻辑了。例如“User=?”,或者“Role=?”,或者“Group=?”的属于可以访问,如下图:
在这几个页面,你还可以看到,OSB提供一种所谓Custom Authentication的设置,即通过XPath在报文中找出Username和Password来做身份验证。因为如果不是这种Custom的方式的话,用户名和密码是保存在HTTP的头上的(你可以看看HTTP协议规范)。通过Custom的方式,客户端的代码可以更加简单,因为用户名和密码可以是某方法的参数,这些参数可以用XPaht找到。如下图:
3、HTTPS传输
你或许担心,密码明文或者传输,那可怎么办呢?简单的做法就是使用HTTPS进行传输,设置也很简单,上面的第一个图就有这个选项。
但是使用起来,这选项并不是那么简单的,还有不少事情要做,这些都是所谓证书的问题。
如果你使用正式购买的证书,安装在OSB服务器上,一般“正式”的证书,其根已经在各个客户端上安装且信任,服务调用时不会再有信任的问题。如果你不想花这部分前,你想自己搞证书服务器或者使用自己给自个签名的证书,也可以,但是你就要把证书也安装在各个客户端上,让各个客户端信任你的这个证书。这种方式不同的客户端的使用方法,设置方法可能不同,这是比较烦的地方。当然,也可用编程的方式,每次调用服务时用API来做信任证书的事情,但这个也不简单。
4、WS-Security
这是高级活,其基本要求也是有证书(PKI那套),使用起来有不少的功能,包括部分加密,签名,反抵赖等等,令人羡慕。不过用起来也不简单,有时间再详谈罗。
转载地址:http://www.cnblogs.com/alfredxiao/archive/2010/09/22/osb_security1.html
相关文章推荐
- OSB (Oracle Service Bus)上代理服务的安全设置(一)
- OSB (Oracle Service Bus)上代理服务的安全设置(一)
- Solaris下Oracle服务开机自启设置和一些安全策略
- Oracle中的OMS的代理服务启动不了的问题
- 如何使用Red Had Linux8.0设置双网卡代理服务
- Windows 2008 R2 远程桌面服务(八)远程桌面服务器安全设置
- Delphi 设置代理服务
- 通过三种方法为apt-get设置http代理服务
- Centos5.5下提高sshd服务安全设置
- Linux 下设置oracle 10g 自动启动服务
- OSB实战开发【一】Oracle Service Bus的安装
- 2008年3月小记(设置Windows服务的依赖关系,配置MSMQ的访问权限,WCF的安全配置,删除重建网站,HttpWebRequest,一年中的周,在WCF中使用HttpContext,String.Join)
- 设置Linux的服务自动启动Oracle服务器
- flex调用web服务的安全设置
- Win2003开启IIS服务需要做的一些安全设置
- Windows 2003安全设置大全---IIS、终端服务、FTP、SQL的配置
- 调用web服务的代理设置问题
- Linux 下设置oracle 10g 自动启动服务
- 远程连接ORACLE服务的设置方法
- 代理服务介绍和设置