Admin Settings API 允许 Google Workspace 网域的管理员以 Google Data API Feed 的形式检索和更改其网域的设置。
这些网域设置涵盖 Google Workspace 管理控制台中的许多功能。此 API 的示例用途包括创建自定义控制台,或将 Google Workspace 网域集成到现有的旧版环境中。
Admin Settings API 可实现 Google 数据 API 协议。Google 数据 API 符合 Atom 发布协议 (AtomPub) 的发布和编辑模型。AtomPub HTTP 请求使用网络服务的表示法集传输 (RESTful) 设计方法。有关详情,请参阅 Google 数据开发者指南。
观众
本文适用于想要编写可修改和检索 Google Workspace 网域相关信息的客户端应用的开发者。它提供了使用原始 XML 和 HTTP 进行基本 Admin Settings API 交互的示例。
本文假定您了解 Google Data API 协议的一般概念并熟悉 Google Workspace 管理控制台。要详细了解管理控制台,请参阅使用管理控制台。
开始使用
创建帐号
已为 Google Workspace 帐号启用 Admin Settings API。注册 Google Workspace 帐号以进行测试。管理设置服务会使用 Google 帐号,因此如果您在 Google Workspace 网域中拥有帐号,就一切准备就绪了。
关于 Admin Settings API Feed 类型
您可以使用 Admin Settings API 管理以下类别的域名设置:
- 单点登录设置
借助基于 SAML 的单点登录 (SSO),用户可为 Google Workspace 托管服务以及您可能在组织内托管的其他服务使用相同的登录名和密码。具体而言,使用 SSO 时,Google Web 等托管 Web 应用会将用户重定向到贵单位的身份提供商,让用户在登录时进行身份验证。有关详情,请参阅了解适用于 Google Workspace 的基于 SAML 的单点登录。
配置单点登录时,需要输入必要的必要信息,让 Google Workspace 服务与存储用户登录信息的身份提供方进行通信,以及设置用户应收到哪些链接用于登录、退出和更改密码。您可以使用 Admin Settings API 以编程方式更新和检索这些设置。Google 会使用生成的公钥向身份提供方验证此 SSO 请求,并验证私钥 SAML 响应在网络传输期间未被修改。
如需关于使用 SSO 设置的简短 API 专用摘要,请从您的身份提供方处获取公钥证书,向 Google 注册公钥,并设置基于 SAML 的 SSO 查询设置。如需了解错误消息,请参阅单点登录问题排查:- 生成密钥 -- 通过身份提供方,使用 DSA 或 RSA 算法生成一组公钥和私钥。公钥位于 X.509 格式的证书中。要详细了解基于 SAML 的单点登录密钥,请参阅为 Google Workspace 单点登录服务生成密钥和证书。
- 向 Google 注册 - 使用 Admin Settings API 的单点登录设置向 Google 注册您的公钥证书。
- 指定 SSO 设置 - 使用 Admin Settings API 的单点登录设置来配置与域身份提供方的服务器进行通信的设置。
- 网关和路由设置
此 Feed 让网域管理员可以控制网域的电子邮件递送。
电子邮件转送操作允许管理员指定网域级别的电子邮件转送设置。这类似于管理控制台的 Gmail 设置的电子邮件路由功能。有关详情,请参阅电子邮件转送和电子邮件转送功能的双重递送配置。
Admin Settings API XML 请求和响应示例
本文提供了使用原始 XML 和 HTTP 的基本 Admin Settings 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
元素表示单个键值对,其中包含您要检索或更新的属性的相关信息。这些是所有 Admin Settings API 请求正文通用的。
网域默认语言响应 entry
元素会返回 smartHost
和 smtpMode
属性,以及所有 Admin Settings 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 常规 Feed 网址并包含 Authorization
标头,如向管理设置服务进行身份验证中所述。有关错误消息,请参阅单点登录问题排查:
https://apps-apis.google.com/a/feeds/domain/2.0/{domainName}/sso/general
此操作的请求正文中没有参数。
成功的响应将返回一个 HTTP 200 OK
状态代码以及具有域 SSO 设置的 AtomPub 供稿。
GET 响应 XML 会返回 samlSignonUri
、samlLogoutUri
、changePasswordUri
、enableSSO
、ssoWhitelist
和 useDomainSpecificIssuer
属性:
<?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>
这些属性包括:
- SAML 登录 URI
- Google Workspace 用于发送 SAML 请求(用于进行用户身份验证)的身份提供商网址。
- SAMLLogoutUri
- 用户退出 Web 应用时将转到的地址。
- changePasswordUri
- 用户想要更改 Web 应用的单点登录密码时要转到的地址。
- 启用单点登录
- 为此网域启用基于 SAML 的单点登录。如果您之前配置了单点登录设置,随后又将
enableSSO
设置为enableSSO=false
,系统仍会保存您之前输入的设置。 - sso 白名单
- sso 白名单是采用无类别域间路由 (CIDR) 格式的网络掩码 IP 地址。sso 白名单中确定哪些用户使用 SSO 登录,哪些用户使用 Google Workspace 帐号身份验证页面登录。如果未指定掩码,则所有用户都将使用单点登录。如需了解详情,请参阅网络掩码的工作原理。
- 使用域特定颁发者
- 可以在发送给身份提供方的 SAML 请求中使用网域特有的颁发者。虽然大多数 SSO 部署都没有必要这样做,但对于使用单个身份提供方对具有多个子网域的整个组织进行身份验证的大型公司而言,此功能非常有用。向特定网域颁发者确定要与该请求关联的子网域。有关详情,请参阅 SAML 请求中的颁发者元素如何工作?
如果您的请求因某种原因而失败,系统会返回不同的状态代码。如需详细了解 Google Data API 状态代码,请参阅 HTTP 状态代码。
更新单点登录设置
要更新网域的单点登录设置,请先使用检索单点登录设置操作来检索单点登录设置,对其进行修改,然后将 PUT
请求发送至单点登录 Feed 网址。请确保更新后的条目中的 <id>
值与现有条目的 <id>
完全匹配。添加 Authorization
标头,如向 Admin Settings API 服务进行身份验证中所述。有关错误消息,请参阅单点登录问题排查。
更新单点登录设置时,请将 HTTP PUT 发送到 SSO 常规 Feed 网址:
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 Feed。
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
标头(如向管理设置服务进行身份验证中所述)。有关错误消息,请参阅单点登录问题排查:
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 签名密钥,请先使用检索单点登录签名密钥操作来检索签名密钥,修改该密钥,然后向 SSO 签名密钥 Feed 网址发送 PUT
请求。请确保更新后的条目中的 <id>
值与现有条目的 <id>
完全匹配。要详细了解基于 SAML 的单点登录密钥,请参阅为 Google Workspace 单点登录服务生成密钥和证书。
更新单点登录签名密钥时,请向 SSO 签名密钥 Feed 网址发送 HTTP PUT
:
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
响应会返回 smartHost
和 smtpMode
属性。有关这些属性的详细信息,请参阅更新出站电子邮件网关设置。
可能的响应示例如下:
<?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>
请求属性包括:
- 智能主机
- SMTP 服务器的 IP 地址或主机名。Google Workspace 会将出站邮件路由到此服务器。
- smtpMode
- 默认值为 SMTP。另一个值 SMTP_TLS 用于在传递邮件时保护与 TLS 的连接。
成功的响应将返回一个 HTTP 200 OK
状态代码以及具有电子邮件网关设置状态的 AtomPub Feed。
如果您的请求因某种原因而失败,系统会返回不同的状态代码。如需详细了解 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:
字段会更改为目标主机名(用户@目的地的主机名),且邮件会递送到目标邮件服务器上的此用户地址。如果为false
,则该电子邮件将递送至目标邮件服务器上原始邮件的to:
电子邮件地址(<用户>@<原始主机名>)。这类似于管理控制台的“更改 SMTP 信包”设置。有关详情,请参阅电子邮件转送的网域设置。 - routeEnabled
- 如果为
true
,表示启用了电子邮件转送功能。如果为false
,则停用此功能。 - bounceNotifications
- 如果设为
true
,Google Workspace 将允许在递送失败时向发件人发送退回通知。 - 帐号处理
此设置用于确定网域中的不同类型的用户会受电子邮件转送的影响:
allAccounts
- 将所有电子邮件递送到此目标。provisionedAccounts
- 如果用户位于 Google Workspace 中,则系统会在此目的地递送邮件。unknownAccounts
- 如果用户不在 Google Workspace 中,则将邮件递送至此目的地。 这类似于管理控制台的“递送电子邮件”设置。如需详细了解前提条件以及如何使用邮件转送设置,请参阅电子邮件转送的网域设置。 ~ 要发布此请求,请向电子邮件路由 Feed 网址发送 HTTPPOST
,并包含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