2015-10-19 64 views
0

作爲一個獨立軟件開發商,我想提供礦(和谷歌的)的多個客戶從目錄API收集數據的能力。由於我們的應用程序是沒有頭腦的,因此客戶需要授權我們的應用程序才能使用域範圍授權,但在我看來,它會造成安全漏洞。如果我們的應用程序(又是無頭的)被授權給客戶A的帳戶,並且也授權給客戶B,那麼會阻止客戶A看到(收集)客戶B的數據,反之亦然?安全和域範圍的代表團

因爲在這種情況下,唯一的身份驗證是我們的應用程序的API,什麼是推薦的方法來防止這種情況的發生?每個客戶有不同的客戶ID?這不是說每個客戶都必須擁有Google開發者帳戶嗎?或者,我們是否面臨必須爲每個客戶手動創建單獨的服務帳戶?

(我的應用程序工作正常,順便說一句,只是似乎沒有安全感,我)

+0

要清楚,只有管理員將訪問到所有的客戶數據。如果客戶A授權您的應用程序,則不是該客戶B可以訪問客戶A的信息。例如,如果A與您的應用共享其雲端硬盤文件讀取權限,則只有該應用的管理員才能訪問該文件。除非A與B或管理員共享信息,否則可以訪問該信息。您還可以通過設置適當的範圍來控制應用程序請求的信息。 – SGC

+0

@SGC感謝您的迴應。我仍然沒有信服,所以當我能找到合作伙伴來測試我的應用程序時,我將不得不測試我的理論,並查看我是否可以在沒有訪問其帳戶的情況下收集他們的數據。鑑於API的工作方式以及域範圍委派如何工作,我沒有看到任何會阻止知道其他客戶的聰明客戶收集他們的數據的任何事情 - 除了應用程序的API之外,在API中完成的唯一「身份驗證」客戶端ID /密鑰就是所謂的「用戶電子郵件」,也就是目標域中管理員的電子郵件地址。 – MushyMiddle

回答

1

要回答我的問題,測試這在另一個客戶的GFW賬戶後,這僅僅是因爲沒有安全感,因爲我認爲這是。我沒有問題使用兩個不同帳戶的相同服務帳戶信用來收集數據,唯一的「祕密」是每個帳戶的管理員電子郵件地址。

這是谷歌的文檔中的一個缺失:域範圍代表團不應該使用在多個賬戶在同一服務帳戶憑據使用,或者這些帳戶將能夠訪問彼此的數據。因此,如果您計劃向需要無頭API訪問的客戶提供應用程序,請使用類似OAuth Web服務器流程的服務,或爲每位客戶創建一組單獨的服務帳戶憑據。

在Google文檔中左側不清楚是開發人員可以創建的憑據或應用程序的數量限制(如果有的話),所以如果您計劃擁有大量客戶,服務帳戶和DWD可能不是一種選擇。

+0

我很擔心同樣的事情,這對谷歌來說似乎很隨意。要麼你必須使用用戶驗證令牌(每小時),要麼必須授權服務器/應用程序完全使用它提供的任何權限 - 在整個域中!唯一的節約優勢似乎是文檔和電子表格,如果不提前知道ID,就無法訪​​問它們。 – jQwierdy