[英]Reduce size of authorization python AWS Lambda@Edge
我正在嘗試在我的雲端發行版中實施授權。 到目前為止,它一直有效,直到我遇到大小限制。 我現在遇到雲端錯誤消息Max allowed: 1048576
,大約是 ~1MB。 但在安裝authlib
package 后,總大小約為 6MB。 我驗證令牌的方法大致如下所示:
from authlib.jose import JsonWebToken
jwk = get_jwk()
claims_options = {
"iss": {"essential": True, "value": ISSUER},
"aud": {"essential": True, "value": AUDIENCE}
}
jwt = JsonWebToken()
claims = jwt.decode(token, jwk, claims_options=claims_options)
claims.validate()
在尺寸限制之前,整個事情都很順利。
我解決這個問題的想法是:
也許還有更多的選擇,但這些是我能想到的,按降序排列是可取的。 請求有關這些選項或可能完全不同的解決方案的幫助。
authlib
package 的問題在於其大小的很大一部分是cryptography
依賴項,它具有自己編譯的依賴項。 這里很少有人考慮如何處理它。
要考慮的一個選擇是嘗試更輕量級的 package ,如pyjwt
。 根據文檔,如果您想使用某些數字簽名算法(如 RSA 或 ECDSA)對令牌進行編碼或解碼,則 pyjwt 需要依賴cryptography
。 這意味着您可以將 HS256 算法與pyjwt
的輕量級版本一起使用(不依賴於cryptography
)。 我沒有測試過,但應該低於尺寸限制。
我不是密碼學專家,但據我了解,基於 HS256 的 JWT 可能會受到蠻力攻擊或字典攻擊。 因此,建議改用RS256或ES256算法。
此存儲庫中顯示了一個關於如何使用推薦算法的有趣解決方案,其中 Lambda@Edge 只是向另一個 API發出請求,該請求對其大小沒有如此嚴格的限制,並且可以在不損害安全性的情況下使用cryptography
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.