簡體   English   中英

將 JWT 添加到 Spring Boot 微服務

[英]Adding JWT to Spring Boot Microservices

我目前在 aws 上有一個應用程序,它使用 Spring Boot 微服務作為后端,使用 ReactJS 作為前端。

它目前的工作方式是用戶使用用戶名和密碼登錄,然后對帳戶微服務進行 fetch 調用。 在那里我用 db 做一個基本的用戶名和密碼檢查,然后發回一個 True 或 False 響應。

如果為 True,則用戶登錄並重定向到產品頁面,在該頁面對產品服務進行 fetch 調用以獲取所有產品的列表。

我現在想引入 JWT 授權,以便只有登錄用戶才能調用產品服務。

我的問題是 - 我可以在我當前的帳戶服務中引入它,還是必須在這兩個服務前面放一些東西(目前它們共享一個負載均衡器)。 或者我可能需要通過賬戶服務來引導產品服務流量?

另外,如果我可以在我的當前帳戶服務中引入它,我如何共享產品服務所需的密鑰,以便它可以在請求進來時驗證它?

干杯,克里斯

為此,通用方法是擁有一個 API 網關層,即僅需要處理以下事項的微服務 -

  1. 執行身份驗證任務並為用戶生成 JWT 令牌
  2. 解碼令牌后讀取角色和職責,每次用戶調用以進行授權
  3. 從這里獲得用戶的角色后,您可以在 API Gateway 中為每個服務創建路由,以檢查他是否可以訪問該功能,在您的情況下,假設用戶的角色是“倉庫管理員”並且他有資格使用關心產品和相關信息,然后他可以訪問產品服務,為此您只能在 API 網關層進行角色檢查,當請求來自與產品服務相關的路由(假設它的 "/products" )時。 因此,您僅在 API 網關層維護真實性檢查。
  4. 或者在其他情況下,如果您還想維護帳戶服務以進行身份​​驗證和授權,那么您必須將來自 API Gateway 的調用定向到帳戶服務並將請求路由到相關的后端服務,一旦響應來自攜帶用戶角色和權限的帳戶服務。

暫無
暫無

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

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