社区首页 >问答首页 >谷歌服务帐户不能冒充GSuite用户

谷歌服务帐户不能冒充GSuite用户
EN

Stack Overflow用户
提问于 2018-03-19 15:38:48
回答 1查看 1.4K关注 0票数 2
代码语言:javascript
代码运行次数:0
复制
from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = ['https://www.googleapis.com/auth/calendar']
SERVICE_ACCOUNT_FILE = 'GOOGLE_SECRET.json'

credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

delegated_credentials = credentials.with_subject('address@example.com')

google_calendar = googleapiclient.discovery.build('calendar', 'v3', credentials=delegated_credentials)

events = google_calendar.events().list(
    calendarId='address@example.com',
    maxResults=10
).execute()

上述守则的结果是:

代码语言:javascript
代码运行次数:0
复制
google.auth.exceptions.RefreshError: ('unauthorized_client: Client is unauthorized to retrieve access tokens using this method.', '{\n  "error" : "unauthorized_client",\n  "error_description" : "Client is unauthorized to retrieve access tokens using this method."\n}')

Domain-wide delegation接通了。在GSuite中使用适当的作用域授权服务帐户客户端ID。

服务帐户适用于正常凭据。它仅不适用于委托凭据。

我尝试过不同的API(作用域)和我们域中的不同用户。

我有一位同事试图从零开始对一个样本进行编码,他得到了同样的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-20 01:44:21

我认为您的问题是在调用日历API之前没有授权您的凭据,但是在我自己的实现中有一些不同之处

  • 使用以下导入语句 从oauth2client.service_account导入ServiceAccountCredentials从apiclient导入发现
  • 使用from_json_keyfile_name方法
  • 授权凭据,并在构建服务时将其作为http参数传递

尝试对代码进行以下修改:

代码语言:javascript
代码运行次数:0
复制
from apiclient import discovery
from oauth2client.service_account import ServiceAccountCredentials
import httplib2

SCOPES = ['https://www.googleapis.com/auth/calendar']
SERVICE_ACCOUNT_FILE = 'GOOGLE_SECRET.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# Use the create_delegated() method and authorize the delegated credentials
delegated_credentials = credentials.create_delegated('address@example.com')  
delegated_http = delegated_credentials.authorize(httplib2.Http())
google_calendar = discovery.build('calendar', 'v3', http=delegated_http)

events = google_calendar.events().list(
    calendarId='address@example.com',
    maxResults=10
).execute()

我还建议在API调用中设置calendarId='primary',以便始终返回当前具有委派凭据的用户的主日历。

有关使用ServiceAccountCredentials进行身份验证的更多信息,请参见以下链接:account.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49374112

复制
相关文章
如何删除MySQL用户帐户
MySQL允许您创建多个用户帐户并授予适当的权限,以便用户可以连接和管理数据库。如果不再需要用户帐户,则最好删除用户权限或完全删除用户帐户。
星哥玩云
2022/08/18
3.2K0
如何删除MySQL用户帐户
关闭"用户帐户控制"提示
将方块移动到 从不通知,点击 确定,弹出提示是否允许更改,点击 是;再次打开软件就不会弹出 "用户帐户控制" 对话框了。
似水的流年
2021/04/07
1.6K0
关闭"用户帐户控制"提示
Windows 2008设置域用户帐户密码策略
1. 如图3-22所示,在DCServer上,点击“开始”à“程序”à“管理工具”à“组策略管理”。
黄啊码
2020/05/29
2K0
​GitHub用户注意,网络钓鱼活动冒充CircleCI窃取凭证
9月26日消息,GitHub警告称,有网络钓鱼活动冒充CircleCI DevOps平台,瞄准GitHub用户窃取证书和双因素身份验证(2FA)代码。
FB客服
2022/11/14
1.5K0
​GitHub用户注意,网络钓鱼活动冒充CircleCI窃取凭证
如何创建MySQL用户帐户和授予权限
MySQL是最流行的开源关系数据库管理系统。 MySQL服务器允许我们创建大量用户帐户并授予适当的权限,以便用户可以访问和管理数据库。
星哥玩云
2022/08/18
2.6K0
如何创建MySQL用户帐户和授予权限
Bypass-UAC(用户帐户控制)的那些事
在本文中,我们将简要介绍一下用户帐户控制,即UAC。我们还将研究它如何潜在地保护免受恶意软件的攻击并忽略UAC提示可能给系统带来的一些问题。
FB客服
2021/10/11
1.9K0
Gsuite邮件发送功能中的SMTP注入漏洞分析
本文讲述了作者通过Gsuite邮件发送功能,可构造后缀为@google.com的任意发件人身份,实现SMTP注入,漏洞获得了谷歌$3133.7的奖励。
FB客服
2020/07/09
1.9K0
Gsuite邮件发送功能中的SMTP注入漏洞分析
创建您自己的虚拟服务帐户
虚拟服务帐户允许您创建访问令牌,其中用户 SID 是服务 SID,例如NT SERVICE\TrustedInstaller。虚拟服务帐户不需要配置密码,这使其成为限制服务的理想选择,而不必处理默认服务帐户并使用 WSH 锁定它们或使用密码指定域用户。
Khan安全团队
2022/01/18
9550
Flask-7 用户帐户和个人资料图片
在Flask_Blog\flaskblog\static新建一个文件夹pics,用来保存用户上传的头像图片以及默认头像图片default.jpg:
XXXX-user
2019/07/23
7690
Flask-7 用户帐户和个人资料图片
本地帐户和活动目录帐户
本地帐户Local Accounts存储在本地的服务器上。这些帐户可以在本地服务器上分配权限,但只能在该服务器上分配。默认的本地帐户是内置帐户(如administrator、guest等),在安装Windows时自动创建。Windows安装后,无法删除默认的本地帐户。此外,默认的本地帐户不提供对网络资源的访问。默认的本地帐户用于根据分配给该帐户的权限来管理对本地服务器资源的访问。默认的本地帐户和后期创建的本地帐户都位于“用户”文件夹中。
谢公子
2023/09/01
1.7K0
本地帐户和活动目录帐户
Django-8 用户帐户和个人资料头像
首先在django_project下新建文件夹media用来存放头像图片文件,在media下在新建profile_pics文件夹存放用户上传的头像:
XXXX-user
2019/07/23
1.4K0
Django-8 用户帐户和个人资料头像
攻击 Active Directory 组托管服务帐户 (GMSA)
这篇文章旨在强调 GMSA 可以做什么,以及如果没有得到适当保护,攻击者可以做什么。当我们在 Trimarc 执行 Active Directory 安全评估时,我们发现在 AD 环境中组托管服务帐户的使用有限。应尽可能使用 GMSA 将用户帐户替换为服务帐户,因为密码将自动轮换。
Khan安全团队
2022/01/24
2K0
Centos安装谷歌浏览器root用户不能使用解决办法
谷歌浏览器使用习惯了,不喜欢火狐打开很慢的的浏览器,虽然很优秀。。。 于是就下载了谷歌浏览器,然后安装。。结果提示: 要以根用户身份运行,您必须为个人资料信息的存储指定其他的“–user-data-dir” 晕啊,这怎么办?我想到的是修改配置文件,于是搜索修改配置文件 vim /opt/google/chrome/google-chrome 原来最后一行 exec -a “$0” “$HERE/chrome” “$@ ” 修改成:xec -a “$0” “$HERE/chrome” “$@ –user-da
苦咖啡
2018/05/07
1.2K0
获取交互式服务帐户外壳
有时您希望手动与运行服务帐户的 shell 交互。为 SYSTEM 获得一个工作的交互式 shell 非常容易。作为管理员,选择一个以 SYSTEM 身份运行的具有适当访问令牌的进程(例如services.exe)并使用它作为父进程生成一个子进程。只要您指定一个交互式桌面,例如 WinSta0\Default,那么新进程将自动分配给当前会话,您将获得一个可见窗口。
Khan安全团队
2022/01/18
6260
启动某项服务时报错 1079:此服务的帐户不同于运行于同一进程上的其他服务的帐户
如上操作后如果还是不行,参考https://cloud.tencent.com/developer/article/1851075 配置下。
Windows技术交流
2022/01/07
2.6K0
假冒App引发的新网络钓鱼威胁
网络钓鱼(即假的,恶意的电子邮件)常常被人鄙视。在全球聚焦于网上的“零日漏洞攻击”(zero days)、网络“武器”和“动能”网络攻击的时候,网络钓鱼电子邮件似乎是过时、几乎是二流的概念。
Alicia
2018/07/23
1.2K0
冒充受害者?冒充高管?防御社工的5个技巧
社会工程学是利用人类心理而非专业黑客技术来攻击建筑物、系统或数据的艺术。只要仔细训练,就会发现其中的蛛丝马迹。
FB客服
2021/10/11
9360
Gmail全球大规模宕机
今天(3 月 13 日),Google 的多项服务在全球范围内出现了不同程度的宕机,包括 Gmail、Google Drive、 Hangouts、谷歌地图等。
AI科技大本营
2019/03/19
1K0
Gmail全球大规模宕机
“啪”一下,我用了九年的Metaverse(元宇宙)账户没了?
  这个故事的主角是一位叫Thea-Mai Baumann 的澳大利亚艺术家,今年 11 月 2 日,当Baumann试图登录她的 Instagram 帐户时,她收到了一条来自Instagram官方的消息,内容为:“您的帐户因冒充他人而被封锁。”
科技旋涡
2022/03/30
2590
“啪”一下,我用了九年的Metaverse(元宇宙)账户没了?
谷歌CEO皮猜:我们想服务中国用户,但是没想好提供何种服务
从军事合同,“中国版”搜索引擎,到包庇性骚扰事件,谷歌员工不断通过上书、游行、辞职等各种方式,抨击自家的管理层。
量子位
2018/12/07
4080
谷歌CEO皮猜:我们想服务中国用户,但是没想好提供何种服务

相似问题

GSuite服务帐户,DwD未授权访问用户的Gmail帐户

11

冒充用户电子邮件到google服务帐户

11

PHP Gsuite登录帐户和服务帐户

10

GSuite API服务帐户-通过API验证模拟用户凭据

119

在Google中冒充未经授权的用户,使用服务帐户

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档