1

在我的 Rust Tonic 设置中,我在客户端和服务器之间配置了 mTLS(相互 TLS)身份验证。

现在,我想使用存储在客户端证书中的数据a)授权访问(拦截器)b)用于提供服务(即我想看看Hello PetrPetr是否正在连接)

我找不到任何关于此的示例,并且遍历 Tonic 源代码也对我没有帮助。

4

1 回答 1

0

在不和谐频道tokio/tonic上询问后,我得到了解决方案(感谢 Lucio Franco!),还发现实际上一个 tonic 示例(是的,我的研究还不够好)。

对于任何感兴趣的人,这是示例代码: https ://github.com/hyperium/tonic/blob/master/examples/src/tls_client_auth/server.rs

简要总结:

为服务生成的每个方法中提供的参数包含返回所有用户证书的request参数peer_certs() 。

然后可以迭代这些,并解析它们的字节。我使用了 crate x509-parser,它对我很有用,但也可能使用其他的。

于 2021-06-18T10:13:59.000 回答