前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gRPC认证的多种方式实践(排版整理)

gRPC认证的多种方式实践(排版整理)

作者头像
阿伟
发布2019-10-10 11:13:57
2.7K0
发布2019-10-10 11:13:57
举报
文章被收录于专栏:GoLang那点事GoLang那点事
gRPC安全认证介绍

gRPC被设计成可以利用插件的形式支持多种授权认证机制,你可以采用自己喜欢的,简单的,认为方便的一种方式,选择权在用户手里

  • 支持的授权认证机制如下
    1. SSL/TLS认证
    2. 自定义Token认证

SSL/TLS的概念可以参考下面的文章

  • https://www.techug.com/post/https-ssl-tls.html
SSL/TLS认证方式

首先通过openssl生成证书和私钥,命令如下

服务端如下

客户端如下

如上就开启了gRPC的TLS认证

Token认证
  • 我们先看一个gRPC提供我们的一个接口,这个接口中有两个方法,接口位于credentials 包下,这个接口需要客户端来实现
  • 第一个方法作用是获取元数据信息,也就是客户端提供的key,value对,context用于控制超时和取消,uri是请求入口处的uri
  • 第二个方法的作用是否需要基于 TLS 认证进行安全传输,如果返回值是true,则必须加上TLS验证,返回值是false则不用

客户端端实现接口,代码如下

客户端按照如下方式使用

服务端按照如下方式校验,当然我们也可以使用拦截器的形式对每个方法进行拦截,而不是像如下在每个方法中硬编码似的。

总结

gRPC将各种认证方式浓缩统一到一个凭证(credentials)上,可以单独使用一种凭证,比如只使用TLS凭证或者只使用自定义凭证,也可以多种凭证组合,gRPC提供统一的API验证机制,使研发人员使用方便,这也是gRPC设计的巧妙之处

思考

真的需要在每一个服务实现处做认证吗?能不能通过拦截器来做?gRPC拦截器你会了吗?下篇解答

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GoLang那点事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • gRPC安全认证介绍
  • SSL/TLS认证方式
  • Token认证
  • 总结
  • 思考
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档