0
我正在爲需要訪問我使用的api的客戶創建移動應用程序。 api需要認證,應用程序需要調用api來接收某些特定於每個客戶(移動應用程序)的數據。帶API授權訪問的移動應用程序
我只想確保正確的做法是讓移動應用程序將查詢發送到我的服務器,然後再進行經過身份驗證的API調用並將響應返回給移動客戶端?
或者是否有可能讓手機直接進行api調用,大概是使用相同的授權密鑰?
我正在爲需要訪問我使用的api的客戶創建移動應用程序。 api需要認證,應用程序需要調用api來接收某些特定於每個客戶(移動應用程序)的數據。帶API授權訪問的移動應用程序
我只想確保正確的做法是讓移動應用程序將查詢發送到我的服務器,然後再進行經過身份驗證的API調用並將響應返回給移動客戶端?
或者是否有可能讓手機直接進行api調用,大概是使用相同的授權密鑰?
這主要是基於輿論的問題,但是我給它一個去:
[意譯]我的服務器作爲一個API代理進行身份驗證調用另一個API代表我的未經身份驗證用戶?
這是API世界一個普遍的現象,但你需要考慮一些事情:
access_token
),那麼您將打電話給後端API作爲用戶而不是應用程序。是否有可能有移動發出API直接調用到目標API,可能使用相同的授權密鑰?
絕對可以 - 只要您遵循目標API所建立的認證流程。你要考慮的,雖然上面列舉的擔憂相同的列表,除了:如果你使用像OAuth2的驗證流程
access_token
。您的目標API提供商是否提供此服務?如果是這樣,那就是要走的路,如果access_token受到攻擊,只有那個用戶的數據/帳戶等。處於危險之中。client_id
和client_secret
)直接在您的移動應用程序中被警告,可以輕鬆獲取並妥協,從而攻擊者可以通過這種方式訪問整個目標API。
感謝您的詳細解答!,它的認證每個應用程序。 –
@raphael_turtle然後只要它不受速率限制,並且您沒有任何安全/許可問題,代理可能就是要走的路 - 這樣您就可以保留auth在移動應用程序之外。請記住,性能可能是一個問題,但如果您擁有大量用戶,則需要管理代理。 – brandonscript
@raphael_turtle我還在第一個關於可伸縮性和成本的列表中增加了另一行。 – brandonscript