我正在設計一個REST API,其中某些區域可用於公共消費,而另一些則可用於私人用途(大多數是管理員)。REST API公共/安全架構
例如,公共API將允許顯示產品列表,而不要求最終用戶對自己進行身份驗證。因此,它是向API驗證自身的Web應用程序(或電話應用程序)。
管理員應該可以登錄,獲取OAuth令牌,然後執行某些方法。
我已經使用Web API2.0/C#設計了api,但是原理保持不變。我目前正在使用ASP.NET身份,併爲身份驗證的用戶提供訪問令牌和刷新令牌,以便他們可以執行此類非公開呼叫。如果他們沒有令牌,他們將無法訪問該API。
我該如何在公共API級別執行此操作?顯然,我想要認證的不是最終用戶,而是真正的應用程序本身,即使這些調用是公開的,所以一些隨機的John Doe不能公開GET請求。
我知道我們有客戶端ID和應用程序密鑰。人們通常如何認證公共電話?我擔心每次打電話都會一遍又一遍地傳遞客戶端ID和祕密,這種做法違背了目的。
任何指針,將不勝感激。
我最終使用client_credentials授予允許Web客戶端和電話客戶端進行身份驗證並獲得令牌。謝謝! –