OSB (Oracle Service Bus)上代理服务的安全设置(一)

就安全而言,最常见的两个概念,就是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那套),使用起来有不少的功能,包括部分加密,签名,反抵赖等等,令人羡慕。不过用起来也不简单,有时间再详谈罗。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值