authentication - 如何从服务器端访问 grpc 客户端 ssl 证书信息?
问题描述
我正在测试一个客户端/服务器 grpc 应用程序,因为这是一个测试,客户端和服务器都有自签名证书。我使用了 SslCredentials 和 SslServerCredentials (在服务器端,我传入证书和密钥,在客户端,我传入服务器证书和客户端证书和客户端密钥),握手工作正常。但是,当我尝试从服务器端访问客户端证书信息时,我发现 AuthContext 对象中根本没有相关信息(我打印了所有属性,并没有看到任何与客户端证书相关的信息)。我在这里想念什么?谢谢。
解决方案
是的,AuthContext
工作。此外,您可以通过 gRPC 的通道跟踪库——Channelz 以编程方式访问凭证信息。
以下是如何设置它的示例:https ://github.com/grpc/grpc/tree/master/examples/python/debug
您要查找的信息位于套接字级别:https ://github.com/grpc/grpc/blob/master/src/proto/grpc/channelz/channelz.proto#L240
或者,您可以尝试使用命令行工具 ( https://github.com/grpc-ecosystem/grpcdebug ) 来可视化您从应用程序收集的跟踪数据。
推荐阅读
- swiftui - 列表内的 SWIftUI anchorPreference
- regex - 否定的正则表达式在 RewriteRule 中不起作用
- flutter - Flutter StatefulWidget 没有小部件属性
- docker - 我对 docker compose 的 redis6 有一些问题。redis 无法读取 acl 配置
- r - R 聚合功能(使用 PowerBI)
- r - bookdown 中从 git_book 更改为 bs4_book 时未正确呈现特殊字符
- java - 是否可以将我的递归方法更改为迭代?
- azure-cli - 按地址而不是索引删除前门后端
- docker - docker-compose 导致连接已重置(来自 firefox)或来自服务器的空回复(来自 curl)?
- exchangelib - 使用 Python/Exchangelib 请求阅读回执?