2017-07-17 76 views
1

我的Web應用程序(比如說A)將會公開少數REST服務(GET,POST和PUT),這些服務將用於其他2個Web應用程序(如B & C)。這些服務可以由其他Web應用程序調用,而不用A登錄,同時這些服務僅適用於B & C(可能在以後的D,E中使用)。REST Web服務調用約定

現在既然B & C用戶不會用A登錄,我沒有考慮會話維護,但是,我認爲A需要驗證來電是否僅來自B & C.我可以在這樣的外部用戶的REST簽名中引入user idpassword(但是想知道這種情況下的標準約定)。我正在尋找你的建議。

應用程序A基於Spring,Java和Spring REST。我打算介紹智威湯遜的會議。

回答

0

我說你有點搞砸了。

  1. 從來沒有在URL傳遞密碼,因爲許多服務器登錄網址(以明文)。
  2. 爲了確保Spring Application的安全,我建議使用Spring Security
  3. 如果您絕對不想維護用戶會話,則可以爲每個用戶生成API密鑰,並且用戶將該密鑰附加到每個請求。這樣的API密鑰可能由UUID.randomUUID().toString()
+0

客戶端是否應該存儲API密鑰?那是靜態的嗎? – glensing

+0

絕對不是 - 你應該把密鑰放在分貝中。 – xenteros

+0

謝謝,我的意思是說,爲了「...用戶將該密鑰附加到每個請求」用戶必須知道它。用戶是否也應該在客戶端存儲相同的密鑰。我知道密鑰應該存儲在數據庫中,但客戶如何知道它的密鑰是什麼?我很可能錯過了一些東西。 – glensing

0

你想在OAuth 2.0JWT tokens看作爲解決當前的認證/授權流產生。

在OAuth中,您將使用身份提供程序(iDP)對用戶進行身份驗證並使用用戶信息和聲明發布令牌,而不是將該令牌傳遞給信任令牌發佈者的資源提供程序(API,網站等) (iDP)並且可以驗證令牌有效性。