如何以编程方式创建Google Apps用户帐户

jb。

我的组织(波兰侦察兵协会)拥有自己的Google Apps域,每个侦察兵都具有一个电子邮件地址。

我们决定创建一个WWW应用程序,用户可以在其中进行授权,并设置自己的Google Apps帐户。为此,我们需要一种非互动式的互动式方式来创建Google Apps帐户。

要清楚:

  1. 用户使用我们在整个组织中使用的凭据登录到我们的应用程序
  2. 他发起了Google Apps帐户创建
  3. 我们的应用程序创建了他的Google Apps帐户

可以使用不推荐使用的Google Data API来完成另一种方法似乎是通过Google Admin目录API进行的,但是根据文档,需要实际的物理用户来使用Oauth2授权请求。

在示例中,提出了以下流程:

flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
print 'Go to the following link in your browser: ' + authorize_url
code = raw_input('Enter verification code: ').strip()
credentials = flow.step2_exchange(code)

似乎我需要使用OAuth2方案,(我猜)这意味着某个拥有管理员权限的在世人员会授权每个请求,在我们的情况下,我们显然希望用户能够初始化帐户创建。

是否可以使用此(或任何其他)API?

jb。

@David的回答使我走上了正确的轨道,但是在使用服务帐户时遇到了一些问题。

解决方案

我决定使用服务帐户和模拟API,请注意,这将为您的应用程序提供非常高的访问权限,并极大地提高了安全性!

无论如何,这是您需要做的:

设置服务帐号

按照本教程进行操作,但是在设置凭据时创建一个服务帐户

这是页面的相关内容:

(...),您可以通过执行以下操作在开发人员控制台中自行激活Admin SDK:

  • 转到Google Developers Console。
  • 选择一个项目,或创建一个新项目。
  • 在左侧的边栏中,展开API和身份验证。接下来,单击API。在API列表中,确保Admin SDK的状态为“开”。
  • 在左侧的边栏中,选择“凭据”。
  • 无论哪种情况,您都将进入“凭据”页面,并可以从此处创建项目的凭据。

如果尚未执行此操作,请通过单击OAuth标题下的创建新的客户端ID来创建OAuth 2.0凭据。接下来,在相关表中查找应用程序的客户端ID和客户端密钥。您也可以从此页面创建和编辑重定向URI。

全域授权

使用本指南对代码执行域范围的授权

  1. 转到您的Google Apps域的管理控制台。
  2. 从控件列表中选择“安全性”。如果您没有看到“安全性”列表,请从页面底部的灰色栏中选择“更多控件”,然后从控件列表中选择“安全性”。
  3. 从选项列表中选择高级设置。
  4. 在“身份验证”部分中选择“管理第三方OAuth客户端访问”。
  5. 在客户名称字段中,输入服务帐户的客户ID。
  6. 在“一个或多个API范围”字段中,输入应授予您的应用程序访问范围的范围列表(请参见下图)。例如,如果您需要对Google Drive API和Google Calendar API进行域范围的访问输入:https : //www.googleapis.com/auth/drive,https : //www.googleapis.com/auth/calendar单击授权按钮。

请注意,您需要提供Client IDEmail Address在步骤5中。

请参阅此以获取范围列表

安装所需的依赖项

安装google-api-python-client,PyCrypto和PyOpenSSL(您可以省略PyOpenSSL),但是随后您需要转换下载的证书。

您可以使用以下示例执行身份验证

with open('private/key-filename.p12', 'rb') as f:
    private_key = f.read()

credentials = SignedJwtAssertionCredentials(
   '[email protected]', # Email address [1]
   private_key,
   'https://www.googleapis.com/auth/admin.directory.user',
   sub="[email protected]" # Impersonate user [2])
  • 其中1是服务帐户的电子邮件地址,而2您域中admin用户的现有地址从现在开始,将使用此用户授权和凭据(用2标记执行API采取的所有操作
  • 请注意,第5步中包含1Email Address个服务帐户(与客户ID不同)。

现在,您应该拥有对您的API的读写帐户。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以编程方式访问(封闭用户组)?

来自分类Dev

如何以编程方式创建Google帐户?

来自分类Dev

您如何以编程方式启动用户选择的Daydream?

来自分类Dev

Google Apps Admin API:需要为服务帐户指定帐户用户吗?

来自分类Dev

如何以编程方式删除用户个人资料图片?

来自分类Dev

如何以编程方式创建Windows Azure租户和用户

来自分类Dev

使用Directory API创建Google日历后,如何以编程方式向Google Apps用户订阅公司日历?

来自分类Dev

如何以编程方式输入用户提示的答案?

来自分类Dev

如何以编程方式为用户提供Google+覆盖

来自分类Dev

如何以编程方式获取Firebase中的注册用户列表

来自分类Dev

如何以编程方式检查Google用户的个人资料图片是否不是默认图片?

来自分类Dev

如何以编程方式创建Google服务帐户凭据?

来自分类Dev

如何以编程方式向用户订阅Firestore主题?

来自分类Dev

如何以编程方式检测用户登录?

来自分类Dev

Google Apps Admin API:需要为服务帐户指定帐户用户吗?

来自分类Dev

如何以编程方式删除用户个人资料图片?

来自分类Dev

使用Directory API创建Google日历后,如何以编程方式向Google Apps用户订阅公司日历?

来自分类Dev

如何以编程方式断开SSH用户的连接?

来自分类Dev

如何以编程方式添加用户控件

来自分类Dev

如何以编程方式确定帐户是否属于Administrators组?

来自分类Dev

如何以编程方式在hMailServer上创建用户?

来自分类Dev

在遇到用户创建的错误后,如何以编程方式强制编译器停止编译过程?

来自分类Dev

web2py-如何以编程方式注册用户?

来自分类Dev

如何以编程方式获取Firebase中的注册用户列表

来自分类Dev

如何以编程方式显示自定义用户位置

来自分类Dev

如何以编程方式注销用户?[Django]

来自分类Dev

如何以编程方式创建帐户和联系人?

来自分类Dev

如何以编程方式告诉用户上次登录网络邮件帐户的时间?

来自分类Dev

如何以编程方式复制 Google Apps 脚本中文件绑定脚本的脚本权限?

Related 相关文章

  1. 1

    如何以编程方式访问(封闭用户组)?

  2. 2

    如何以编程方式创建Google帐户?

  3. 3

    您如何以编程方式启动用户选择的Daydream?

  4. 4

    Google Apps Admin API:需要为服务帐户指定帐户用户吗?

  5. 5

    如何以编程方式删除用户个人资料图片?

  6. 6

    如何以编程方式创建Windows Azure租户和用户

  7. 7

    使用Directory API创建Google日历后,如何以编程方式向Google Apps用户订阅公司日历?

  8. 8

    如何以编程方式输入用户提示的答案?

  9. 9

    如何以编程方式为用户提供Google+覆盖

  10. 10

    如何以编程方式获取Firebase中的注册用户列表

  11. 11

    如何以编程方式检查Google用户的个人资料图片是否不是默认图片?

  12. 12

    如何以编程方式创建Google服务帐户凭据?

  13. 13

    如何以编程方式向用户订阅Firestore主题?

  14. 14

    如何以编程方式检测用户登录?

  15. 15

    Google Apps Admin API:需要为服务帐户指定帐户用户吗?

  16. 16

    如何以编程方式删除用户个人资料图片?

  17. 17

    使用Directory API创建Google日历后,如何以编程方式向Google Apps用户订阅公司日历?

  18. 18

    如何以编程方式断开SSH用户的连接?

  19. 19

    如何以编程方式添加用户控件

  20. 20

    如何以编程方式确定帐户是否属于Administrators组?

  21. 21

    如何以编程方式在hMailServer上创建用户?

  22. 22

    在遇到用户创建的错误后,如何以编程方式强制编译器停止编译过程?

  23. 23

    web2py-如何以编程方式注册用户?

  24. 24

    如何以编程方式获取Firebase中的注册用户列表

  25. 25

    如何以编程方式显示自定义用户位置

  26. 26

    如何以编程方式注销用户?[Django]

  27. 27

    如何以编程方式创建帐户和联系人?

  28. 28

    如何以编程方式告诉用户上次登录网络邮件帐户的时间?

  29. 29

    如何以编程方式复制 Google Apps 脚本中文件绑定脚本的脚本权限?

热门标签

归档