我已經看到許多關於不同解決方案的不同文章,用於驗證RESTful API,並且在當前情況下我有一些問題。面向REST API身份驗證的客戶端
我已經構建了一個REST API,允許我的軟件服務(我們是B2B公司)的客戶以編程方式訪問資源。現在我已經可以正常使用API了,我想以最標準的方式保證它的安全。我需要允許基於API的調用者訪問某些資源。也就是說,並非所有API的用戶都可以訪問所有資源。
我提供網址的格式如下:
https://mydomain/api/students
https://mydomain/api/students/s123
https://mydomain/api/students/s123/classes
https://mydomain/api/students/s123/classes/c456
到目前爲止,我想出了這些可能的解決方案:
提供一個唯一的密鑰,以每個客戶,他們可以使用最終生成一個加密標記,該標記將在每個REST調用結束時作爲GET參數傳遞給(重新) - 驗證每個請求。這是方法過於昂貴
所看到here提供的HTTP認證頭的值。這與#1幾乎相同嗎? (除了我無法將URL粘貼到瀏覽器中)人們是否再使用這些標頭?
使用OAuth 2(我仍然有點不清楚)。 OAuth 2是否實際將客戶端認證爲登錄用戶?這不符合REST API無國界的精神嗎?我希望OAuth對我來說是合適的解決方案(因爲它是一個公共標準),但在閱讀了一點之後,我不太確定。對於REST API調用它是否過度和/或不適當?
我的目標是提供不必更改爲希望來使用API的每個客戶端的API,而是我可以提供提供給所有客戶的標準文檔。
如果我不清楚,我很樂意發佈更多詳細信息。