我一直在閱讀和搜索幾個小時,對此沒有明確的答案。
想象一下,我有一個 SPA 客戶端訪問 REST API,它們由同一個服務提供服務,例如,我通過轉到 訪問我的 SPA example.com,而 SPA 進行的 REST API 呼叫是到example.com/api/orders。SPA 和 REST API 是否需要是兩個單獨的 OAuth 客戶端注冊?
從概念上講,我正在登錄一個應用程式,但我可以看到它們有何不同。例如,SPA 在登錄后需要 redirect_url 并且是“公共客戶端”,而 REST API 不需要 redirect_url 并且可以是“機密客戶端”。(如果我想向其他消費者開放 REST API 和/或讓 SPA 直接呼叫其他資源提供者,我可以看到它也更加靈活)。
我相信我可以通過一個 OAuth 客戶端注冊而僥幸,但這是一種反模式還是出于安全原因而受到嚴重反對?我只是想在同一個站點上拋出一個帶有一些經過身份驗證的 REST API 的簡單 SPA,并且需要兩個 OAuth 注冊似乎有點過頭了。
uj5u.com熱心網友回復:
從概念上講,您的前端和后端應該是不同的 OAuth2 客戶端。但是,是的,您可以擺脫一位客戶。
從安全的角度來看,最好有兩個客戶端。您可以為每個設定不同的安全約束——公共客戶端需要 PKCE,禁用來自網路外部的機密客戶端請求等。
我會和兩個客戶一起去。即使您現在不需要為它們中的任何一個提供任何特殊的東西,它也可能會在以后發生,并且創建一個額外的客戶端并不需要太多作業。
還有另一種選擇 - 只有后端客戶端并使用會話 cookie 進行前端授權。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409933.html
標籤:
