Skip to the content.

鉴权功能

tars是一个强大的RPC框架,你只需要得到被调用方的tars协议文件,就可以使用tars框架编码,请求被调方服务。方便的同时也带来了一些安全隐患,如果我们的服务接口是敏感的,不希望敏感数据被随意请求访问。这样我们需要一个细化到服务的鉴权访问机制。 tars提供了这样的机制,你只需要设置账号密码,tars框架在网络层自动完成密码验证,对业务层完全透明。对于无法提供正确账号密码 的客户端,直接踢掉连接。

目前只有C++支持鉴权功能,java即将支持。

tars鉴权使用

tars鉴权的使用非常简单,你不需要修改一行代码,只需要更改配置文件。 只需要按照下面三个步骤设置:

修改被调用方的endpoint,开启鉴权机制

在tars服务平台,选中需要启用鉴权的服务,编辑servant,修改endpoint,添加-e 1. -e及其参数表示是否开启鉴权,默认为0是不开启的,为1则是开启。

修改被调用方的配置文件添加账号密码

注意,被调用方可以有多个adapter,每个需要鉴权的adapter都有自己独立的账号密码。 如图,对test.oko.BertObjAdapter设置账号bert,密码123456:

由于截图不全,实际私有模板内容如下:

<tars>
  <application>
    <server>
        <test.oko.BertObjAdapter>
            accesskey=bert
            secretkey=123456
        </test.oko.BertObjAdapter>
    </server>
  </application>
</tars>

现在,在web平台重启服务。

修改调用方的配置文件添加账号密码

注意,调用方可以访问多个obj,每个需要鉴权的obj都有自己独立的账号密码。 如图,对test.oko.BertObj设置账号bert,密码123456:

由于截图不全,实际私有模板内容如下:

<tars>
  <application>
    <client>
        <test.oko.BertObj>
            accesskey=bert
            secretkey=123456
        </test.oko.BertObj>
    </client>
  </application>
</tars>

现在,在web平台重启调用方。

这样,你的服务就必须通过账号密码才可以访问了。