本文档介绍了 Fleet Engine 如何保护 Fleet Engine 系统的三个主要环境(后端服务器、Fleet Engine 服务器以及客户端应用和网站)之间的信息交换。
Fleet Engine 采用最小权限原则,通过以下两种基本方式管理安全性:
应用默认凭据 (ADC):适用于高特权环境,例如服务器到服务器通信。当后端服务器在 Fleet Engine 中创建车辆和行程并进行管理时使用。如需了解详情,请参阅应用默认凭据。
JSON Web 令牌 (JWT):适用于低信任环境,例如在智能手机和浏览器上运行的客户端应用。用于执行较低权限的操作,例如在车队引擎中更新车辆位置。
低信任环境所需的 JWT 由后端服务器生成并签发,用于保护服务账号密钥,并包含特定于车队引擎的其他声明。如需了解详情,请参阅 JSON Web 令牌。
例如,如果您有驾驶员应用,驾驶员可以通过该应用访问车队引擎中的数据。该应用使用从后端服务器获取的 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 用于客户端应用和网站。
您的后端服务器会在车队引擎中创建车辆和行程或任务。
您的后端服务器向车辆发送行程或任务:当司机应用处于活动状态时,会检索分配。
您的后端服务器:为具有分配的任务或行程的适当 IAM 角色的相应服务账号签署并签发 JWT。
客户端应用:客户端应用使用收到的 JWT 将车辆位置更新发送到车队引擎。
后续步骤
- 创建 Fleet Engine 项目。
- 了解如何从服务器发出 JSON Web 令牌。
- 详细了解服务账号角色。
- 详细了解 JWTs。