簡體   English   中英

API 網關和應用后端認證

[英]API gateway and app backend authentication

我有后端和前端的應用程序。 我們使用 JWT 令牌進行身份驗證和授權(A2)。 現在我們計划將 express-gateway 用作 API 網關(AG),以便后端可以從路由和其他保護重負載中卸載,並將該負擔轉移到 AG。 現在,由於我們使用的是 AG,我們是否應該從后端刪除 A2 邏輯以及任何到達后端的請求(每個請求都將通過 AG 從消費者路由到后端),我們將其視為經過身份驗證的用戶並處理請求,無需再次驗證。 如果是,那么我們仍然需要 JWT 令牌來獲取有效負載以提取 email id、角色等信息。為此,我們應該將令牌從 AG 傳遞到后端。 與 EG 相比,支持的有效載荷上也可能有不同類型的東西。 如何解決。

要將身份驗證信息傳遞到服務器,您需要使用 request-transformer 策略將信息添加到發送到服務器的請求標頭中,例如,以下片段添加了一個名為 eg-consumers-firstname 的 header:

  - request-transformer:
    - condition:
        name: authenticated
      action:
        headers:
          add:
             jscode: 'req.headers["eg-consumer-firstname"] = consumer.firstname'

您可以在 jscode 部分中使用的 JS 變量沒有特別好的文檔記錄,但您可以訪問 models/users.js 中的所有內容。

通常,您可以經常調整 gateway.config.yml 以使范圍限制給定用戶可用的 apiEndpoints(路徑); 這是防止未經授權的訪問的更好方法,然后在下游服務器端進行處理,如果 API 網關受到損害,應該進行獨立檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM