美文网首页
ServiceComb认证与鉴权(一)

ServiceComb认证与鉴权(一)

作者: JW费心思 | 来源:发表于2020-06-12 13:56 被阅读0次

一般来说,服务中心注册的服务,消费者可以无障碍的调用生产者。也就是说,默认是没有接口认证与鉴权的。关乎这方面的需求,servicecomb也提供了相关的实现方法。

本文介绍两种实现方式, 自带的RSA认证以及servicecomb-fence组件认证

RSA认证方法

用户可以通过简单的配置,开启服务间的RSA认证,以保障服务接口的安全性。具体操作如下:

1. 引入依赖

<dependency> 
<groupId>org.apache.servicecomb</groupId> 
<artifactId>handler-publickey-auth</artifactId> 
</dependency>

2. 设置配置项

消费者:

servicecomb:
  handler:
    chain:
      Consumer:
        default: auth-consumer

生产者:

servicecomb:
  handler:
    chain:
      Provider:
        default: auth-provider
  1. 微服务启动时, 生成密钥对,并将公钥上传到service-center中
  2. 消费者在访问提供者前,使用私钥对消息进行签名
  3. 提供者从service-center获取消费者公钥,并对消息进行校验

3. 启动并测试服务

采用samples中的BMI例子来测试,该例子分为consumer和provider,consumer提供身高和体重,经过provider提供的计算方法,得到具体的BMI结果,返回到consumer并展示在前端节点。


如果将consumer的auth-consumer的handler去掉,就可以看到,由于缺少认证,请求会失败 认证失败

4. RSA认证

根据公钥认证描述,服务在往服务中心注册时,会生成密钥对并上传密钥,不过我找了一圈服务的日志,并没有密钥生成和上传日志,反而找到如下日志,显示说key文件不存在?warning日志就不管了? 那不行!

2020-06-12 01:42:05.620  WARN 23920 --- [           main] o.a.s.foundation.vertx.VertxTLSBuilder   : keyStore [server.p12] file not exist, please check!
2020-06-12 01:42:05.621  WARN 23920 --- [           main] o.a.s.foundation.vertx.VertxTLSBuilder   : trustStore [trust.jks] file not exist, please check!
2020-06-12 01:42:05.666  WARN 23920 --- [           main] o.a.s.foundation.vertx.VertxTLSBuilder   : keyStore [server.p12] file not exist, please check!
2020-06-12 01:42:05.666  WARN 23920 --- [           main] o.a.s.foundation.vertx.VertxTLSBuilder   : trustStore [trust.jks] file not exist, please check!

根据资料keytool生成证书 ,我在环境上生成了相关证书,主要命令如下:

//会在root目录生成trust.jks, 如果不指定名字,默认.keystore
keytool -genkeypair -keystore trust.jks

//使用keytool将jks格式转换为p12格式
keytool -importkeystore -srckeystore /root/trust.jks -destkeystore /root/server.p12 -deststoretype pkcs12

将生成的两个文件,也就是上述warning日志提示的两个文件trust.jksserver.p12复制到项目的resources目录下
再次启动服务....
发现日志还是提示文件不存在。 纳尼?
由于项目对于RSA认证不是很急迫,暂时先不再深究了。

关于另一种实现auth的方法,下篇文章会记录

相关文章

网友评论

      本文标题:ServiceComb认证与鉴权(一)

      本文链接:https://www.haomeiwen.com/subject/coxitktx.html