如何将 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::...` 的引用

将 gRPC 与 Electron 14 一起使用

如何将 goog.payments.inapp.buy 与 luciferous jwt 一起使用?

将 JWT 与 nodejs 和 express 一起使用

手把手教大家在 gRPC 中使用 JWT 完成身份校验

手把手教大家在 gRPC 中使用 JWT 完成身份校验