![](/img/trans.png)
[英]Domain-wide delegation using default credentials in Google Cloud Run
[英]Access the Google Workspace Admin SDK with out domain-wide delegation?
我正在嘗試使用 NodeJS 編寫一個服務器應用程序,該應用程序可以訪問我們的 Google Workspaces (G-Suite) 帳戶的 Admin-SDK。 到目前為止,我發現的所有教程都描述了以下過程:
admin@mycompany.com
所以訪問目錄 API 可能看起來像這樣:
const serviceAccountEmail = "gcp-service-account@gcp-project.iam.gserviceaccount.com";
const privateKey = "-----BEGIN PRIVATE KEY-----....";
const scopes = ['https://www.googleapis.com/auth/admin.directory.group'];
const adminEmail = "admin@mycompany.com";
const auth = new google.auth.JWT(
serviceAccountEmail,
null,
privateKey,
scopes,
adminEmail,
);
const admin = await google.admin({
version: 'directory_v1',
auth,
});
以下注釋顯示在服務帳戶上的Enable G Suite Domain-wide Delegation
復選框旁邊:
允許此服務帳號被授權訪問 G Suite 域中所有用戶的數據,而無需對其部分進行手動授權。 學到更多
也許我沒有正確理解這一點,但這不是令人難以置信的寬容和嚴重違反最小特權原則嗎? 我了解我的應用程序需要以admin@mycompany.com
管理員帳戶身份進行身份驗證,但是有沒有辦法將其限制為僅此帳戶而不是“G Suite 域上的所有用戶數據” 。
根據 Delegating domain-wide authority to the service account,服務帳戶只能訪問與該帳戶共享的任何內容:
G Suite 域的管理員可以授權應用代表 G Suite 域中的用戶訪問用戶數據。
這意味着服務帳戶只能訪問應用程序模擬的帳戶中的數據。
例如,您可以實施檢查以允許模擬特定組織單位的帳戶,但所有這些檢查都必須在應用程序級別完成。
例如,使用您的服務帳戶,您可以檢查模擬帳戶所屬的組織單位。 如果檢查成功,您可以繼續使用域范圍的委派服務帳戶模擬此帳戶並執行所需的操作。
單獨而言,全域委派確實是一項非常強大的功能,它允許應用程序訪問您組織的整個 G Suite 帳戶中的用戶數據。 作為超級管理員帳戶,您有責任正確、安全地管理它。
當超級管理員單獨啟用范圍時,最小權限原則會部分執行。
但正如您猜到的那樣,這對用戶數據無效,因為應用程序可以訪問並且可以模擬任何用戶。 所以答案是否定的,您不能將其限制為單個 email。
對我來說似乎有點矯枉過正,因為有些電子郵件非常敏感,你不應該冒充它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.