2017-02-21 52 views
0

如何進行無狀態體系結構設計,以便如果用戶(A)已登錄且Json Web令牌由服務器生成(X1)並返回給用戶A.再次,用戶-A將請求發送到服務器,目的由服務器(X2)提供,而不使用戶重新認證。 這樣的架構水平高度可擴展。如何使用JWT構建微服務的身份驗證/授權?

回答

0

通常你會有一個服務來完成所有與認證有關的工作。基本上這意味着X1和X2將調用該服務來驗證用戶身份或驗證現有身份驗證。應該在X1和X2上執行的唯一一件事是驗證令牌。令牌可以是有效的,有效的,過期的或無效的。如果它是有效的,你只需執行必要的工作,而不管特定的服務器。如果無效,則拒絕請求,如果該請求已過期,則將用戶重定向到重新認證。

但是,如果您詢問關於特定環境的細節並且您的問題是X2沒有X1具有某些特定的加密密鑰或類似的東西,那麼您忘記提及您用來獲取JWT的框架。

0

有一些要求,使其工作:

  1. 如上所述,X1和X2將使用內部服務用於證書驗證。

  2. 綁定到A的數據源的用戶/ api客戶端記錄中將存在salt。

  3. X1和X2加密密鑰應該共享,並且它們應該使用與JWT的sub對象相同的結構。 iss也應該檢查對象(通常綁定到請求驗證的用戶綁定到的api客戶端)。 verefication的邏輯應該在X1和X2之間共享。

令牌有僞造的數據 - 如果它由相同的服務A提供,然後散列和結構化,然後以相同的方式由X1和X2檢查。