繁体   English   中英

向 PHP 脚本验证 AWS Lambda 函数

[英]Authenticating AWS Lambda Function to a PHP script

我有一个具有以下结构的 php webapp:

app
├── user
└── jobs
    ├─ task1.php
    └─ task2.php

用户可以通过 Web 浏览器执行作业文件夹中的任务脚本。 为了保护这些脚本,在每个脚本中都实施了基于会话的身份验证。

为了自动执行这些任务,我们实施了一个 AWS Lambda 函数,该函数使用它们的 URL(即https://www.domaine.com/jobs/task1.php )通过 HTTP 调用这些脚本。

问题是这个 Lambda 函数也需要进行身份验证。 我想到的实现是使用 AWS 中的一些服务,它允许您生成一个 Token,如下所示:

  1. Lambda:使用 AWS 服务生成令牌
  2. Lambda:使用 Token 调用 task.php 脚本
  3. Task.php:使用 AWS 服务验证令牌
  4. Task.php:继续执行请求的任务

有没有更好的方法来验证 Lambda 调用? 如果没有,有没有办法实现以前的机制?

验证(第 3 点)表明您不想使用 API 密钥,这将是保护任务调用的最简单方法。

另一种解决方案是将 JWT 与共享机密一起使用 - Lambda 是使用机密创建的 JWT 令牌,PHP 脚本 task*.php 将使用相同的机密验证该令牌。 它不需要回程来验证 Lambda 的令牌。

编辑:根据您对要求的解释...

如果 PHP 不想知道可以验证令牌的秘密,自然会调用(建议单独)共享(通过 ENV 变量)秘密的 Lambda,该秘密用于创建 JWT 令牌并且能够验证( Yes/Nea) 使用标准 JWT 库。

就像您看到的那样,它比 PHP 共享密钥创建了更多的复杂性。

但是,如果您不想管理任何秘密(在 PHP 和/或 Lambda 中)传递不可验证的令牌,这似乎毫无意义(只是拥有令牌艺术的艺术)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM