Admin Settings API 概览

Admin Settings API 可让 Google Workspace 网域的管理员以 Google Data API Feed 的形式检索和更改其网域设置。

这些域名设置包括 Google Workspace 管理控制台中提供的许多功能。该 API 的示例用途包括创建自定义控制台或将 Google Workspace 网域集成到现有的旧环境中。

Admin Settings API 实现了 Google Data API 协议。Google 数据 API 遵循 Atom 发布协议 (AtomPub) 发布和编辑模型。AtomPub HTTP 请求使用表征设置传输 (RESTful) 设计方法来设计网络服务。如需了解详情,请参阅 Google 数据开发者指南

受众群体

本文档适用于想要编写可修改和检索 Google Workspace 网域相关信息的客户端应用的开发者。它提供了使用原始 XML 和 HTTP 进行基本管理设置 API 交互的示例。

本文假定您了解 Google Data API 协议的基本概念,并且熟悉 Google Workspace 管理控制台。有关管理控制台的详细信息,请参阅使用您的管理控制台

使用入门

创建账号

已为 Google Workspace 帐号启用 Admin Settings API。注册用于测试的 Google Workspace 帐号。“管理设置”服务使用 Google 帐号,因此,如果您已经在 Google Workspace 网域中拥有帐号,则无需执行任何操作。

关于管理设置 API Feed 类型

通过管理设置 API,您可以管理以下类别的域设置:

单点登录设置

借助基于 SAML 的单点登录 (SSO),用户可以使用相同的登录名和密码访问 Google Workspace 托管的服务以及您可能在组织内托管的其他服务。具体而言,在使用 SSO 时,Google Workspace 等托管 Web 应用会将用户重定向到贵组织的身份提供方,以便在用户登录时对其进行身份验证。有关详情,请参阅了解 Google Workspace 基于 SAML 的单点登录

配置单点登录时,需要为 Google Workspace 服务输入必要的信息,以便与存储用户登录信息的身份提供方通信,以及设置用户在登录、退出和更改密码时应访问的链接。借助 Admin Settings API,您可以通过编程方式更新和检索这些设置。Google 会使用您生成的公钥向身份提供方验证这个单点登录请求,确认私钥 SAML 响应在网络传输过程中没有被修改。

如需简要说明如何使用单点登录设置,请获取身份提供方的公钥证书,向 Google 注册公钥,并设置基于 SAML 的单点登录查询设置。有关错误消息,请参阅 SSO 问题排查

  • 生成密钥 -- 通过身份提供者,使用 DSA 或 RSA 算法生成一组公钥和私钥。公钥是 X.509 格式的证书。如需详细了解基于 SAML 的单点登录签名密钥,请参阅为 Google Workspace 单点登录服务生成密钥和证书
  • 向 Google 注册 - 使用管理设置 API 的单点登录设置向 Google 注册公钥证书。
  • 设置 SSO 设置 -- 使用 Admin Settings API 的单一登录设置来配置用于与域身份提供者的服务器进行通信的设置。

网关和路由设置

此 Feed 供网域管理员控制其网域的电子邮件转送。

通过电子邮件转送操作,管理员可以指定网域级别的电子邮件转送设置。这类似于管理控制台中 Gmail 设置的电子邮件转送功能。有关详情,请参阅电子邮件路由电子邮件路由功能的双重递送配置

管理设置 API XML 请求和响应的示例

本文档提供了使用原始 XML 和 HTTP 的基本管理设置 API 请求和响应的代码示例。以下域默认语言示例展示了每项操作通用的请求和响应条目正文的完整 XML 和 HTTP 语法:

要更改网域的出站电子邮件网关设置,请向网关 Feed 网址发送 HTTP PUT

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/email/gateway

域默认语言 PUT 请求 AtomPub entry XML 是:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom'
  xmlns:apps='http://schemas.google.com/apps/2006'>
  <apps:property name='smartHost' value='smtp.out.domain.com' />
  <apps:property name='smtpMode' value='SMTP' />
</atom:entry>

除了特定于操作的属性和值之外,atom:property 元素表示单个键值对,其中包含您要检索或更新的属性的相关信息。这些设置在所有管理设置 API 请求正文中是通用的。

网域默认语言响应 entry 元素会返回 smartHostsmtpMode 属性,以及所有管理设置 API 响应正文通用的 XML 语法:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<id>https://apps-apis.google.com/a/feeds/domain/2.0/domainName/email/gateway</id>
<updated>2008-12-17T23:59:23.887Z</updated>
<link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/domain/
  2.0/domainName/email/gateway'/>
<link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/domain/
  2.0/domainName/email/gateway'/>
<apps:property name='smartHost' value='smtp.out.domain.com' />
<apps:property name='smtpMode' value='SMTP' />
</entry>

管理单点登录设置

借助 Google Workspace 单点登录功能 (SSO),用户即可登录多项服务,而且只需输入一次登录名和密码。此密码由域名的身份提供方(而非 Google Workspace)存储。如需了解详情,请参阅帮助中心的单点登录页面。以下各部分介绍了用于单点登录设置的 XML 格式。

检索单一登录设置

要检索单点登录设置,请将 HTTP GET 发送到 SSO 常规供稿网址并包含 Authorization 标头,如在管理设置服务中进行身份验证中所述。此外,如需了解错误消息,请参阅 SSO 问题排查

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/sso/general

此操作在请求正文中没有任何参数。

成功的响应将返回一个 HTTP 200 OK 状态代码,以及具有域 SSO 设置的 AtomPub 供稿。

GET 响应 XML 会返回 samlSignonUrisamlLogoutUrichangePasswordUrienableSSOssoWhitelistuseDomainSpecificIssuer 属性:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<apps:property name='samlSignonUri' value='http://www.example.com/sso/signon'/>
...
<apps:property name='samlLogoutUri' value='http://www.example.com/sso/logout'/>
<apps:property name='changePasswordUri' value='http://www.example.com/sso/changepassword'/>
<apps:property name='enableSSO' value='true'/>
<apps:property name='ssoWhitelist' value='CIDR formatted IP address'/>
<apps:property name='useDomainSpecificIssuer' value='false'/>
</entry>

这些属性包括:

samlSignonUri
身份提供方的网址,Google Workspace 会向该网址发送 SAML 请求以进行用户身份验证。
samlLogoutUri
用户退出 Web 应用后将转到的地址。
changePasswordUri
当用户想要更改 Web 应用的单点登录密码时将转到的地址。
enableSSO
为此网域启用基于 SAML 的单点登录。如果您之前配置了 SSO 设置,并且随后将 enableSSO 设置为 enableSSO=false,那么系统仍会保存您之前输入的设置。
ssoWhitelist
ssoWhitelist 是采用无类别域间路由 (CIDR) 格式的网络掩码 IP 地址。ssoWhitelist 决定了哪些用户使用 SSO 登录,哪些用户使用 Google Workspace 帐号身份验证页面登录。如果未指定掩码,则所有用户都将使用 SSO 登录。如需了解详情,请参阅网络掩码的工作原理
useDomainSpecificIssuer
可以在发送到身份提供方的 SAML 请求中使用网域特有的颁发者。虽然对大多数 SSO 部署而言并不是必需的,但对于使用单一身份提供者验证具有多个子网域的整个组织的大型公司来说,此功能非常有用。由特定的网域颁发者确定与请求关联的子网域。有关详情,请参阅 SAML 请求中的颁发者元素的工作原理

如果您的请求由于某种原因而失败,则会返回不同的状态代码。有关 Google Data API 状态代码的详细信息,请参阅 HTTP 状态代码

更新单点登录设置

要更新网域的 SSO 设置,请先使用检索单点登录设置操作检索 SSO 设置,对其进行修改,然后将 PUT 请求发送到 SSO 供稿网址。请确保更新后的条目中的 <id> 值与现有条目的 <id> 完全匹配。添加 Authorization 标头,如向 Admin Settings API 服务进行身份验证中所述。此外,要查看错误消息,请参阅 SSO 问题排查

当更新单一登录设置时,请将 HTTP PUT 发送到 SSO 常规供稿网址:

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/sso/general

PUT 请求的 XML 正文为:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<apps:property name='enableSSO' value='false' />
<apps:property name='samlSignonUri' value='http://www.example.com/sso/signon' />
<apps:property name='samlLogoutUri' value='http://www.example.com/sso/logout' />
<apps:property name='changePasswordUri' value='http://www.example.com/sso/changepassword' />
<apps:property name='ssoWhitelist' value='127.0.0.1/32' />
<apps:property name='useDomainSpecificIssuer' value='false'/>
</atom:entry>

成功的响应将返回一个 HTTP 200 OK 状态代码以及具有 SSO 设置的 AtomPub 供稿。

PUT 响应 XML 如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
...
<apps:property name='samlSignonUri' value='http://www.example.com/sso/signon'/>
<apps:property name='samlLogoutUri' value='http://www.example.com/sso/logout'/>
<apps:property name='changePasswordUri' value='http://www.example.com/sso/changepassword'/>
<apps:property name='enableSSO' value='false'/>
<apps:property name='ssoWhitelist' value='127.0.0.1/32'/>
<apps:property name='useDomainSpecificIssuer' value='false'/>
</entry>

如果您的请求由于某种原因而失败,则会返回不同的状态代码。有关 Google Data API 状态代码的详细信息,请参阅 HTTP 状态代码

检索单点登录签名密钥

要检索单点登录签名密钥,请将 HTTP GET 发送到 SSO 签名密钥 Feed 网址并包含 Authorization 标头,如在管理设置服务中进行身份验证中所述。此外,如需了解错误消息,请参阅 SSO 问题排查

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/sso/signingkey

此操作在请求正文中没有任何参数。

成功的响应将返回一个 HTTP 200 OK 状态代码以及具有签名密钥的 AtomPub 供稿。

GET 响应 XML 会返回 signingKey 属性:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
...
<apps:property name='signingKey' value='yourBase64EncodedPublicKey'/>
</entry>

如果您的请求由于某种原因而失败,则会返回不同的状态代码。有关 Google Data API 状态代码的详细信息,请参阅 HTTP 状态代码

更新单点登录签名密钥

要更新网域的 SSO 签名密钥,请先使用检索单点登录签名密钥操作检索签名密钥,对其进行修改,然后将 PUT 请求发送到 SSO 签名密钥 Feed 网址。请确保更新后的条目中的 <id> 值与现有条目的 <id> 完全匹配。如需详细了解基于 SAML 的单点登录签名密钥,请参阅为 Google Workspace 单点登录服务生成密钥和证书

更新单点登录签名密钥时,请将 HTTP PUT 发送到 SSO 签名密钥 Feed 网址:

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/sso/signingkey

PUT 请求 XML 如下所示:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps="http://schemas.google.com/apps/2006">
<apps:property name='signingKey' value='yourBase64EncodedPublicKey'/>
</atom:entry>

管理电子邮件网关和路由

出站电子邮件网关部分显示了 Admin Settings API 如何支持您所在网域中用户的邮件出站路由。电子邮件路由部分介绍了如何将邮件路由到其他邮件服务器。

检索出站电子邮件网关设置

要检索出站电子邮件网关设置,请将 HTTP GET 发送到网关 Feed 网址并包含 Authorization 标头,如在管理设置服务中进行身份验证中所述:

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/email/gateway

此操作在请求正文中没有任何参数。

成功的响应将返回一个 HTTP 200 OK 状态代码以及具有电子邮件网关状态信息的 AtomPub 供稿。

GET 响应会返回 smartHostsmtpMode 属性。要详细了解这些属性,请参阅更新出站电子邮件网关设置

可能的响应示例如下:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
...
<apps:property name='smartHost' value='smtpout.domain.com'/>
<apps:property name='smtpMode' value='SMTP'/>
</entry>

如果您的请求由于某种原因而失败,则会返回不同的状态代码。有关 Google Data API 状态代码的详细信息,请参阅 HTTP 状态代码

正在更新出站电子邮件网关设置

要更新网域的出站电子邮件网关设置,请向网关 Feed 网址发送 HTTP PUT 请求:

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/email/gateway

PUT 请求 XML 如下所示:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps="http://schemas.google.com/apps/2006">
<apps:property name='smartHost' value='smtp.out.domain.com' />
<apps:property name='smtpMode' value='SMTP' />
</atom:entry>

请求属性包括:

smartHost
SMTP 服务器的 IP 地址或主机名。Google Workspace 会将外发邮件转送到此服务器。
smtpMode
默认值为 SMTP。另一个值 SMTP_TLS 可在递送邮件时保护与 TLS 的连接。

成功的响应将返回一个 HTTP 200 OK 状态代码,以及具有电子邮件网关设置状态的 AtomPub 供稿。

如果您的请求由于某种原因而失败,则会返回不同的状态代码。有关 Google Data API 状态代码的详细信息,请参阅 HTTP 状态代码

管理电子邮件转送设置

首先,创建一个 XML 请求:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps="http://schemas.google.com/apps/2006">
<apps:property name='routeDestination' value='route-smtp.domain.com'/>
<apps:property name='routeRewriteTo' value='true'/>
<apps:property name='routeEnabled' value='true'/>
<apps:property name='bounceNotifications' value='true'/>
<apps:property name='accountHandling' value='can be either allAccounts | provisionedAccounts | unknownAccounts'/>
</atom:entry>

请求属性包括:

routeDestination
此目的地是电子邮件要经过的 SMTP-In 邮件服务器的主机名或 IP 地址。必须为 Google 解析主机名或 IP 地址。如需详细了解如何解析邮件主机名,请参阅试用 Google Workspace 的电子邮件转送功能
routeRewriteTo
如果为 true,邮件的 SMTP 信包的 to: 字段会更改为目标主机名(user@destination 的主机名),并将邮件递送到目标邮件服务器上的此用户地址。如果为 false,电子邮件会递送到目标邮件服务器上原始邮件的 to: 电子邮件地址(user@original 主机名)。这类似于管理控制台的“更改 SMTP 信包”设置。有关详情,请参阅电子邮件转送的网域设置
routeEnabled
如果为 true,则表示电子邮件转送功能处于启用状态。如果为 false,表示该功能处于停用状态。
bounceNotifications
如果设为 true,Google Workspace 可在递送失败时向发件人发送退信通知。
accountHandling

此设置决定了电子邮件路由对网域中不同类型的用户有何影响:

  • allAccounts - 将所有电子邮件递送到此目标。
  • provisionedAccounts - 如果 Google Workspace 中存在用户,则将邮件递送到此目标位置。
  • unknownAccounts - 如果该用户不在 Google Workspace 中,则将邮件递送到此目标位置。 这类似于管理控制台的“电子邮件递送对象”设置。要详细了解邮件转送的前提条件和使用方法,请参阅电子邮件转送的网域设置。 ~ 如需发布此请求,请将 HTTP POST 发送到电子邮件路由 Feed 网址并包含 Authorization 标头,如向管理设置服务进行身份验证中所述:

https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/emailrouting

成功的响应将返回一个 HTTP 200 OK 状态代码以及具有归档信息的 AtomPub 供稿。

如果您的请求由于某种原因而失败,则会返回不同的状态代码。有关 Google Data API 状态代码的详细信息,请参阅 HTTP 状态代码

端点将于 2018 年 10 月 31 日弃用

作为此公告的一部分,我们弃用了以下端点。 它们已于 2018 年 10 月 31 日停用,不再提供。

  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/general/defaultLanguage
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/general/organizationName
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/general/currentNumberOfUsers
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/general/maximumNumberOfUsers
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/accountInformation/supportPIN
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/accountInformation/customerPIN
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/accountInformation/adminSecondaryEmail
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/accountInformation/edition
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/accountInformation/creationTime
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/accountInformation/countryCode
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/appearance/customLogo
  • https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/verification/mx