本文档介绍了 Fleet 引擎如何确保 Fleet Engine 系统的三个主要环境:后端服务器、 Fleet Engine 服务器以及客户端应用和网站。
Fleet Engine 采用最小权限原则,通过以下两种基本方式管理安全性:
应用默认凭据 (ADC):适用于高特权环境 例如服务器到服务器的通信。当后端服务器在 Fleet Engine 中创建车辆和行程并进行管理时使用。如需了解详情,请参阅 请参阅应用默认凭据。
JSON 网络令牌 (JWT):适用于客户端等低信任的环境 在智能手机和浏览器上运行的应用程序。用于实现 较低权限的操作,例如更新 Fleet Engine 中的车辆位置信息。
低信任环境所需的 JWT 由后端服务器生成并签发,用于保护服务账号密钥,并包含特定于车队引擎的其他声明。如需了解详情,请参阅 JSON Web 令牌。
例如,如果您有驾驶员应用,驾驶员可以通过该应用访问车队引擎中的数据。该应用使用从后端服务器获取的 JWT 进行身份验证。所包含的 JWT 声明以及服务账号角色决定了驾驶员应用可以访问系统的哪些部分以及可以执行哪些操作。这种方法会限制访问权限,使其仅限于完成驾驶任务所需的数据。
Fleet Engine 使用这些安全方法提供以下功能:
Authentication 可验证发出请求的实体的身份。 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 网络令牌。
应用安全设置
应用开发者需要在客户端应用或网站中添加用于提取后端服务器生成的 JSON Web 令牌的方法,并使用这些令牌安全地与车队引擎通信。如需了解详情,请参阅您所需应用的驾驶员体验或用户体验文档中的设置说明。
服务器和客户端应用安全流程
以下序列图演示了使用 Fleet Engine 的服务器和客户端应用身份验证和授权流程,其中 ADC 用于后端服务器,JWT 用于客户端应用和网站。
您的后端服务器在 Fleet Engine 中创建车辆和行程或任务。
您的后端服务器向车辆行驶或完成任务: 驱动程序应用处于活动状态时,会检索分配。
您的后端服务器:为具有分配的任务或行程的适当 IAM 角色的相应服务账号签署并签发 JWT。
客户端应用:客户端应用使用收到的 JWT 发送车辆 Fleet Engine 中的位置信息更新。
后续步骤
- 创建 Fleet Engine 项目。
- 了解如何从服务器发出 JSON Web 令牌。
- 详细了解服务账号角色。
- 详细了解 JWT。