簡體   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