如何将 JWT 与 grpc 一起使用?
Posted
技术标签:
【中文标题】如何将 JWT 与 grpc 一起使用?【英文标题】:How do I use JWT with grpc? 【发布时间】:2017-01-25 05:28:56 【问题描述】:我正试图让我的头脑围绕grpc authentication。从示例的外观来看,grpc 似乎支持 ssl/tls 和 google 令牌...
我还将json web tokens 视为一种身份验证方式。
我不确定这是否是正确的思考方式,但是我将如何将 JWT 与 grpc 结合使用?
JWT 是与 oauth2 示例一起使用的“令牌”吗?
它是否与正在打开的“roots.pem”文件有关?
我觉得我对身份验证/令牌知之甚少。我尝试搜索涉及 grpc 和 JWT 的 python 示例,但几乎没有结果。
我是不是想错了?
【问题讨论】:
【参考方案1】:正常的 JWT 方法使用由环境在众所周知的位置提供的服务帐户凭据。这就是示例中的“Google 默认凭据”。这些是迄今为止最容易使用的,并且具有最佳的安全性和性能特征。
通过使用 OAuth 令牌也支持 OAuth2。这对于诸如 3-legged OAuth 或集成到直接使用令牌的预先存在的应用程序之类的事情很有用。
roots.pem
是不同的东西。这适用于使用自定义证书颁发机构的基于 TLS 的身份验证。
也就是说,Python 中目前没有 JWT 示例。请关注the open issue。今天的示例使用服务帐户凭据,但随后将其转换为普通的 OAuth 令牌。
【讨论】:
你能扩展一下吗?我正在查看在 google 网站上找到的服务帐户文档,对此我有些困惑。我需要在谷歌注册这个项目吗? "众所周知的位置" ...这是位置服务器端还是客户端? 另外,是否有与 python 的 c++ 示例“MetadataCredentialsPlugin”相对应?是 AuthMetadataPlugin 吗?以上是关于如何将 JWT 与 grpc 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
将 grpc 与 QtCreator 一起使用,未定义对 `grpc::...` 的引用