本文档介绍了 Fleet Engine 如何确保 Fleet Engine 系统的三个主要环境(后端服务器、Fleet Engine 服务器以及客户端应用和网站)之间的信息交换安全无虞。
Fleet Engine 采用最小权限原则,通过以下两种基本方式管理安全性:
应用默认凭据 (ADC):适用于高权限环境,例如服务器到服务器的通信。当后端服务器在 Fleet Engine 中创建车辆和行程并对其进行管理时使用。如需了解详情,请参阅应用默认凭据。
JSON Web 令牌 (JWT):适用于低信任环境,例如在智能手机和浏览器上运行的客户端应用。用于完成低权限操作,例如在 Fleet Engine 中更新车辆位置信息。
低信任度环境所需的 JWT 由后端服务器生成和签发,以保护服务账号密钥,并包含特定于 Fleet Engine 的其他声明。如需了解详情,请参阅 JSON Web 令牌。
例如,如果您有司机应用,司机可以通过该应用访问 Fleet Engine 中的数据。该应用使用从后端服务器获取的 JWT 进行身份验证。随附的 JWT 声明以及服务账号角色决定了驱动程序应用可以访问系统的哪些部分以及可以执行哪些操作。此方法可将访问权限限制为仅允许访问完成驾驶任务所需的数据。
Fleet Engine 使用以下安全方法来提供以下功能:
身份验证用于验证发出请求的实体的身份。Fleet Engine 在高信任度环境中使用 ADC,在低信任度环境中使用 JWT。
授权用于指定经过身份验证的实体可以访问哪些资源。Fleet Engine 使用具有 Google Cloud IAM 角色的服务账号,以及可确保经过身份验证的实体有权查看或更改其请求的数据的 JWT 声明。
服务器和客户端安全设置
如需通过 Fleet Engine 启用安全性,请在后端服务器以及客户端应用和网站上设置所需的账号和安全性。
下图简要展示了在后端服务器和客户端应用上设置安全性的步骤。
如需了解详情,请参阅以下部分。
后端服务器安全设置
车队管理员需要按以下步骤操作:
创建和配置服务账号:
在 Google Cloud 控制台中,创建服务账号。
为服务账号分配特定的 IAM 角色。
使用创建的服务账号配置后端服务器。如需了解详情,请参阅服务账号角色。
配置与 Fleet Engine 的安全通信 (ADC):配置后端,以使用应用默认凭据和相应的 *Admin 服务账号与 Fleet Engine 实例通信。如需了解详情,请参阅应用默认凭据。
配置与客户端应用的安全通信 (JWT):创建 JSON Web 令牌生成器,以创建包含适合客户端应用和监控网站的声明的 JWT。如需了解详情,请参阅签发 JSON Web 令牌。
应用安全设置
应用开发者需要在客户端应用或网站中添加一种方法来获取由后端服务器生成的 JSON Web 令牌,并使用这些令牌与 Fleet Engine 安全地通信。如需了解详情,请参阅所需应用的驾驶员体验或消费者体验文档中的设置说明。
服务器和客户端应用安全流程
以下序列图展示了使用 ADC 的后端服务器与使用 JWT 的客户端应用和网站的 Fleet Engine 服务器和客户端应用身份验证与授权流程。
后端服务器在 Fleet Engine 中创建车辆和行程或任务。
您的后端服务器向车辆分配行程或任务:驾驶员应用在处于活动状态时会检索分配。
后端服务器:为相应服务账号签署并颁发 JWT,其中包含分配的任务或行程所需的相应 IAM 角色。
客户端应用:客户端应用使用收到的 JWT 向 Fleet Engine 发送车辆位置更新。
后续步骤
- 创建 Fleet Engine 项目。
- 了解如何从服务器签发 JSON Web 令牌。
- 详细了解服务账号角色。
- 详细了解 JWT。