本文主要是介绍TARS 的服务鉴权功能|避免数据泄露,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者 Eaton
导语
在我们使用微服务架构时,经常会选择通过 RPC 通信框架方便地实现服务间的调用。但方便的同时也带来了一些安全隐患,任何用户都能够访问对外公开的接口,可能造成部分敏感数据的泄露,这是我们不希望看到的,怎么避免呢?这要求我们对访问的用户进行鉴别,因此我们需要一个细化到服务的鉴权访问机制。本文将介绍 TARS 的服务鉴权及其使用方法。
目录
- 什么是鉴权
- TARS 服务鉴权
- 服务准备
- 被调服务 TestServer
- 主调服务 HttpServer
- 开启鉴权
- 修改被调用方的 endpoint,开启鉴权机制
- 修改被调用方的配置文件添加账号密钥对
- 修改主调方的配置文件添加账号密钥
- 总结
什么是鉴权
鉴权是指验证用户或服务是否具有访问系统的权利。对于部分公开的接口,我们并不希望所有用户或服务都能够访问,只希望特定的对象能够访问,因此我们需要鉴别访问接口的用户或服务的身份,确保访问的对象是我们希望的,保证接口的安全,这就是鉴权。
鉴权一般可分为用户鉴权和服务鉴权。
-
用户身份鉴权通常依赖于用户系统,需要在业务代码中实现,实现方式有很多种,取决于具体的业务需求和使用的用户系统。
-
服务鉴权则是对调用方服务的鉴别,确保只有特定的服务或客户端能够调用该服务。
TARS 服务鉴权
TARS 提供了一个强大的 RPC 框架,你只需要得到被调用方的 TARS 协议文件,就可以使用TARS框架编码,请求被调方服务。同时 TARS 框架中还提供了一个细化到服务的鉴权访问机制,通过账号密钥对的形式,使被调服务能够对调用方进行鉴别。
接下来我们以 TarsCpp为例,通过一个实例来看看如何在 TARS 中使用服务鉴权。
服务准备
我们需要准备两个服务,一个是被调服务,一个主调服务。
被调服务 TestServer
首先我们创建一个被调服务,应用名为 TestApp
,服务名为 TestServer
,Obj
名为 Test
,如下
/usr/local/tars/cpp/script/cmake_tars_server.sh TestApp TestServer Test
生成如下文件
TestServer
├── build
├── CMakeLists.txt
└── src├── CMakeLists.txt├── Test.h├── TestImp.cpp├── TestImp.h├── TestServer.cpp├── TestServer.h└── Test.tars
然后修改 Test.tars
文件,定义一个 test
接口,传入一个字符串 input
,返回一个字符串 output
module TestApp
{interface Test
{int test(string input, out string output);
};};
接着,在 TestImp.cpp
接口实现文件中,添加接口实现,如下
int TestImp::test(const string &input, string
这篇关于TARS 的服务鉴权功能|避免数据泄露的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!