为 Dapr 请求启用令牌身份验证

在 Azure Container Apps 中为应用程序启用 Dapr 时,它会将环境变量APP_API_TOKEN注入到应用的容器中。 Dapr 在发送到你的应用程序的所有请求中都包含相同的令牌,具体如下:

  • HTTP 标头 (dapr-api-token)
  • gRPC 元数据选项 (dapr-api-token[0])

令牌是随机生成的,在每个应用和应用修订版本中都是唯一的。 它也可以随时更改。 应用程序在启动时应从 APP_API_TOKEN 环境变量中读取令牌,以确保它使用的是正确的令牌。

可以使用此令牌来验证传入应用程序的调用确实来自 Dapr 边车,即便是通过公共终结点进行侦听时亦然。

  1. daprd 容器将其读取并注入到从 Dapr 到应用程序的每个调用中。
  2. 然后,应用程序可以使用该令牌来验证该请求是否来自 Dapr。

先决条件

对来自 Dapr 的请求进行身份验证

如果使用 Dapr 软件开发工具包 (SDK),则可以使用开源 SDK 存储库中提供的 Dapr 身份验证方法。

添加到项目后,Dapr SDK 会验证来自 Dapr 的所有传入请求中的令牌,拒绝不包含正确令牌的调用。 无需执行其他任何操作。

未包含令牌或包含错误令牌的传入请求会被自动拒绝。

后续步骤