4

我們想實現與BIGQUERY和雲存儲服務的輔助分析工具。該工具應該在App Engine上運行並公開REST接口,以便所有請求都通過該接口並隨後轉發到Bigquery。授權訪問Bigquery應基於App Engine服務帳戶(App Identity API)。但是,我們還需要驗證工具客戶端。客戶端始終是另一個應用程序或服務,因此我們不接受OAuth 2.0和基於Web瀏覽器的身份驗證。有沒有辦法實現這種認證,並以某種方式將它與BigQuery存儲綁定到一個雲存儲ACL?App Engine和BIGQUERY認證

考慮的情況如下。客戶在我們的域名中獲得了Google帳戶。它向我們的REST接口發送請求,並提供憑證(電子郵件和密碼)以及其他詳細信息。該工具對客戶端進行身份驗證,並以其名義向Bigquery(或雲存儲)發送請求。如果客戶端嘗試訪問數據集(Bigquery)或桶/實體(雲存儲)而沒有正確的權限(通過Bigquery/Cloud Storage ACL設置),則訪問被禁止。

+0

請解釋「客戶端」:您說:a)客戶端始終是另一個應用程序....並且b)客戶端已獲得Google帳戶在我們的域名。 – voscausa

+0

那麼,我們假設可以在我們的域下創建一個Google帳戶,並使用帳戶憑據(電子郵件,密碼)來驗證客戶端(應用程序)。但是,我們可能是錯的,我們將不得不自己實現身份驗證(例如通過Spring Security)。我們正在考慮Google帳戶,主要是因爲它們連接到了ACL。 – Nathan

回答

2

我想我們都應該爲這一個更多的細節。你如何向客戶發放憑證?您是否期望客戶的操作員知道您的域名上的用戶名/密碼,以便爲您的服務對客戶進行身份驗證?

一種選擇可能是客戶端頒發一個OAuth 2.0刷新令牌,他們把該刷新令牌到他們的應用程序的配置(安全),或者因爲他們下載應用程式會自動將其捆綁。刷新令牌無限期有效,除非被撤銷。

然後直接通過App Engine應用程序和到的BigQuery /谷歌雲存儲令牌通過OAuth 2.0更新。所有ACL(客戶端擁有哪些權限)可以在Cloud Storage/BigQuery中進行本地處理。

你也可以讓他們得到標記本身在Web瀏覽器,只要有憑證。他們只需要在設置應用程序一次時執行此操作,令牌將由應用程序存儲。有關使用OAuth 2.0安裝應用程序的指南中的更多信息: https://developers.google.com/accounts/docs/OAuth2InstalledApp

+0

是的,我們希望客戶端的操作員知道用戶名/密碼,但是這些憑據應該在客戶端(靜態文件,數據庫條目,...)上設置,而不需要Internet瀏覽器。
正如我上面所寫,使用Google帳戶的主要原因是它們與ACL的連接。然而,整個想法可能是錯誤的,我們將不得不實施我們自己的認證和ACL機制(Spring Security),這將更好地滿足我們的需求。 – Nathan

+0

請解釋爲什麼硬編碼憑證?這看起來像是舊的clientLogin,用於已安裝的應用程序,這是depricated。 – voscausa

+0

那麼如果在不使用瀏覽器的情況下如何驗證客戶端的方式不同,那麼我們不需要硬編碼憑證。一般來說,大多數客戶端將按計劃運行,這就是爲什麼即使沒有用戶交互也需要進行身份驗證的原因。 – Nathan