1
API消費者訂閱特定API門戶上的API。 他收到客戶端ID和clinet密碼。 訂閱有一個特定的quata集。OAuth2本地應用程序 - 客戶端祕密
[天天快樂情景]
- 然後,他決定創建一個web應用程序,並在服務器上放置牢固的客戶端密鑰。
- 然後他決定使用Auth代碼授予
- 接收用戶auth_code後接到調用acces_token的請求將是具有客戶端密鑰的服務器到服務器請求。
- 因此,目的是通過安全地存儲和使用client_secret來解決的。
[不快樂的一天場景]
- 後來,他決定創建一個本地應用(公共客戶 - 的Android/IOS應用程序),使用他先前訂購相同的API。
- 對於本機應用程序來訪問該API,它需要access_token。
- 用戶根據身份服務器進行身份驗證並提供授權。
- 接收auth_code並重定向迴應用程序。
- 然後,該應用程序將需要此auth_code +客戶端ID + client_secret才能獲取access_token。
- 但在這種情況下,client_secret未被安全地存儲。應用程序可以被反編譯,而client_secret可能會以API消費者購買/訂閱API的代價被濫用。
隱式流選項被排除。
可能的解決方法:
- 創建其中的client_ID和client_secret存儲在代理和本機應用程序調用該代理AUTH_CODE從而獲得訪問令牌。
- 加密client_secret 請提供更好的建議解決方案/型號的建議。