簡體   English   中英

如何在不考慮標頭的情況下有時用特定標頭緩存Cloudfront響應?

[英]How to cache cloudfront response sometime with a specific header and sometime without taking account the headers?

我正在將Apigateway與Cloudfront發行版一起使用。 我已經設置了自定義授權者。 該分發配置為轉發列入白名單的標題Authorization

例如,我有2個網址:

  • http://domain.tld/me (已登錄的用戶信息)
  • http://domain.tld/products (產品集合)

目標是緩存/products不基於 Authorization標頭。 另一方面,我希望將/meAuthorization標頭一起緩存(因為我不希望用戶B從用戶A獲取緩存的信息 )。 這兩個網址均由授權者保護。

我怎樣才能做到這一點 ?

如果您需要先基於Authorization標頭對請求進行身份驗證,然后再讓它們查看/products但又不想基於Authorization標頭對對象進行緩存,則無法將CloudFront與API Gateway自定義授權方一起使用,因為CloudFront無法在沒有緩存的情況下傳遞標頭-這樣的配置沒有意義,因為CloudFront根本不知道請求是否應被授權。

一種解決方法是使用Lambda @ Edge Viewer Request觸發器而不是自定義授權者,以基於Authorization允許/禁止在/products路徑上訪問CloudFront。 如果“查看者請求”觸發器將控制權返回給CloudFront(而不是發出自己的內部生成的響應),則將檢查緩存,並從緩存中提供響應(命中)或從源中獲取響應(未命中)。 標頭無需白名單即可被查看者請求觸發器訪問。

如果后端要求通用身份驗證令牌的路徑不會因用戶而異,則CloudFront可以使用“自定義來源報頭”注入該令牌。

暫無
暫無

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

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