我想在云运行上部署一个微服务,使用gRPC与它进行通信。我已经设置了该服务,并让它使用不安全的通道工作,但是当涉及到身份验证时,我对文档感到有点困惑。
我对安全性和身份验证没有经验,所以我非常希望有人能概述一下在云运行中设置安全的gRPC通道所需的步骤。将在python中运行。
出现了一些具体的问题
提前感谢
发布于 2022-01-03 12:04:55
您可以在HTTP/2上运行gRPC,而对于HTTP/2,通常使用TLS证书(与普通HTTPS相同)来保护它。
身份验证是通过令牌/密钥或客户端证书或任何您喜欢的东西来完成的。对于令牌/密钥,通常在HTTP/2中提供身份验证头。(类似于HTTP/1.1)
要使HTTPS工作,您需要一个有效的证书,通常是在云中使用LetsEncrypt颁发的。
gRPC和任何其他HTTP请求一样(但在HTTP/2上)
发布于 2022-01-03 14:46:35
云运行将代理作为侧服务器注入到部署的容器中。
服务将始终使用TLS进行保护。
基于TLS的auth可以用于相互验证客户端和服务器,但不对客户端的用户进行身份验证,因为您需要使用额外的机制。
如果允许未经身份验证,任何东西都可以调用您的服务。如果需要身份验证,则服务将需要授权令牌(标识令牌)进行身份验证。
您可以使用Google进行身份验证,但是需要适当地允许项目和的成员(例如调用人员),您需要使用JWT (使用云运行服务端点作为其受众),客户端交换标识令牌。这在您包含的链接中有记录:https://cloud.google.com/run/docs/authenticating/service-to-service。
另一种更复杂但更灵活的方法是使用Firebase Auth来支持联邦身份验证(例如Google、Microsoft、Facebook帐户)和云端点(另一个代理)来进行身份验证。使用这种方法,您还需要实现授权服务,以确定经过身份验证的用户具有什么样的角色:https://cloud.google.com/endpoints/docs/grpc/authenticating-users。
发布于 2022-01-19 13:19:06
https://stackoverflow.com/questions/70564350
复制相似问题