簡體   English   中英

結合API的oAuth 2.0客戶端憑據和資源所有者密碼憑據授予類型?

[英]Combine oAuth 2.0 Client Credentials and Resource Owner Password Credentials Grant Types for API?

我們正在構建一個REST API,它將由我們自己的移動應用程序以及其他應用程序使用。 我們希望使用似乎符合oAuths Client Credentials Grant定義的API密鑰來保護它不被公開訪問。

某些API端點(例如那些會修改用戶資源的端點)將要求用戶進行身份驗證,這似乎符合資源所有者密碼憑據授權定義。

這個問題基本上總結了與下面相關的相同場景,但沒有要求任何實際實現可能的示例:

使用OAuth2的資源所有者密碼憑據授予類型時,如何保持客戶端憑據的機密性

這是一個難以構建的問題。 我已經看過盡可能多的類似問題,但我們似乎都沒有回答以下問題:

這樣的事情如何發揮作用? 除了在某些端點上請求/傳遞用戶的access_token之外,客戶端是否只傳遞API密鑰參數/標頭以及每個請求?

在源代碼(特別是ruby / rails)方面,是否存在任何可公開訪問的示例?

另外,我並沒有嚴格依賴oAuth,所以讓我知道是否有其他安全且經過驗證的方法可以做同樣的事情。

除非您100%控制用戶用於連接服務的設備,否則這是不可能的,無論您采用何種技術。

如果有一個軟件在用戶的機器上運行,並且除了客戶端憑證之外不需要任何其他任何東西來執行某些特權操作,那么,有人可以弄清楚這些憑據是什么。

如果您擔心惡意用戶做某些他們不允許做的事情,您只需將其置於用戶名和密碼(ish)系統之后,這意味着資源所有者密碼憑證(或實際上優選授權代碼授權)。

但是,如果您的移動應用只需要能夠訪問,涉及到的數據專門創建它的設備上,並且不希望用戶進行身份驗證,然后的API,你可以只是“彌補”每台設備的隨機用戶名和密碼並存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM