【问题标题】:Can I use GAM with multiple domains?我可以在多个域中使用 GAM 吗?
【发布时间】:2019-03-26 04:12:05
【问题描述】:

当客户端迁移时,我需要跨两个域运行一些 GAM 脚本;这可能吗?我一直在尝试查找有关设置的任何文档,但似乎没有:/

感谢任何帮助!

注意:这不是关于主域或辅助域的问题 - 如果您需要有关主域/辅助域切换的更多信息,我发现 GAM3DirectoryCommands 非常有用且具有描述性!

【问题讨论】:

    标签: shell google-workspace gam


    【解决方案1】:

    这不是直接可能的;但是您可以通过以下方式实现此目的:

    • 创建一个 CONFIGS 文件夹(您实际上可以称这个 wahtever 对您有意义),并为每个域创建一个子文件夹
    • 将您的 client_secrets.json、oauth2.txt 和 oauth2service.json 文件从 GAM 安装文件夹移动到新创建的域文件夹中
    • 运行 gam info domain 和 gam info user 看看这对您的 gam 安装有何影响
    • 要创建一个新的域设置,运行gam create project
    • 完成后,再次运行 gam info domain 和 gam info user 以查看区别
    • 记得将您的新配置也保存到这个新域的 CONFIGS 文件夹中!
    • 当你替换了配置文件后,在运行任何命令之前运行gam user <your_admin_account_for_the_current_domain> check serviceaccount,否则你可能会得到一些错误;)

    现在您可以通过替换 GAM 安装文件夹中的 client_secrets.json、oauth2.txt 和 oauth2service.json 在域之间切换记得check serviceaccount)。

    显然有很多更优雅的方法可以做到这一点 - 但无论如何这将构成您的 powershell 脚本的基础;P

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      事实上,它比当前的答案相当容易,更容易。 gam 读取指向访问凭据的 OAUTHFILE 环境变量(默认为 oauth2.txt)。这才是最重要的,因为您可以将同一个 GCP 项目用于多个域。

      因此,您只需要一种简单的方法来更改 OAUTFILE 变量。我个人使用这个 gam 别名(而不是 .bash_profile 中的默认别名):

      gam() { export OAUTHFILE=~/.local/share/gam/auth-$1.txt; shift; "~/.local/share/gam/gam" "$@" ; unset OAUTHFILE }
      

      所以我现在的 gam 语法是

      gam <something> info domain
      

      不,上面我使用 ~/.local/share/gam/... 你的路径可能不同。你也可能想要一个 $HOME/.gam-secrets 并将它们放在那里。

      Something 是一个简单的字符串,用于唯一标识每个域(它将用于在别名中构造 OAUTHFILE。

      不要忘记让您的 GCP 服务帐户访问所有域 (https://admin.google.com/AdminHome?#OGX:ManageOauthClients)。

      我想不出更短的途径来进行多域游戏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        • 2012-04-09
        • 1970-01-01
        • 1970-01-01
        • 2011-07-19
        • 2020-02-28
        • 1970-01-01
        相关资源
        最近更新 更多