您已經詢問了HS256優於RS256的好處,例如:
- 認爲方便
- 容易理解並開始使用,如果新 到OAuth2/OIDC(與感知的便利)
- 性能(?)
讓我們快速瀏覽一下其中每一個:
知覺方便/理解該怎麼做 - 確實是抄襲一個客戶tId和clientSecret在應用程序中的配置很容易理解,並且很快完成。但是,今天的庫使得RS256的設置簡單 - 庫/框架通常會提供檢索公鑰的功能,並執行與HS256類似配置的驗證,但不需要提供祕密。如果您不熟悉,請參閱一些使用您的技術選項的Auth0示例,以瞭解這一點。
性能 - 是的,這裏HS256可能有一個利基。除了緩存公共證書等之外,擁有對稱密鑰並在應用程序中使用本地應用程序而不需要任何網絡請求等,可能證明效率更高。
但是真的應該問的問題是這些好處(性能優化?)是否超過了缺點 - 當然從安全角度來看。
看到這個answer,如果仍然不服氣,隨意留言(Auth0社區網站)。默認情況下,Auth0已切換到使用RS256的新客戶端,其資源API也默認爲RS256。
RS256的一個主要優點是勝過大多數選擇HS256的參數,只需簡單地說就是不需要在客戶端應用程序中存儲(共同定位)祕密 - 私鑰僅由授權服務器知道(Auth0等等),祕密不能泄露。僅此一項就能告訴你爲什麼RS256絕大多數情況下都是更好的選擇。
機密vs公衆客戶 - 如果您的客戶被認爲是Confidential Client,您應該只考慮HS256。由於機密客戶能夠保密,因此您可以選擇使用以下兩種方式之一簽發的身份證令牌 - 對於非機密客戶,您絕不應使用HS256,因爲根據定義,客戶端無法使用保密祕密。
HS256還有其他一些考慮因素,例如需要手動更新所有使用給定客戶端配置的應用程序(如果有簽名密鑰翻轉)。
可能重複[RS256 vs HS256:有什麼區別?](https://stackoverflow.com/questions/39239051/rs256-vs-hs256-whats-the-difference) –
@Vitalii - 請參閱我的回答 - 我是否爲你回答這個問題?有什麼不清楚的地方? – arcseldon
感謝您的承認! – arcseldon