以 Google Apps 超级管理员身份通过 API 为用户关闭两步验证

问题描述 投票:0回答:4

作为员工离开公司的“离职”流程的一部分,作为超级管理员,我们使用 Google Apps Admin SDK Directory API 更改用户的密码,以便他们无法再访问自己的帐户。然后我们登录进行 Google Takeout,重置其他帐户的密码等。

但是,我们最近决定对所有用户强制执行两步验证。因此,现在当我们登录他们的帐户时,它会向他们的手机发送一个代码。

由于他们的子组织强制执行 2-Step,我们甚至无法通过管理控制台将其关闭。因此,我现在能做的就是让 API 将用户移动到关闭 2-Step 强制设置的不同 SubOrg,然后手动关闭 2-Step。

有没有办法以编程方式关闭帐户的两步验证?

我查看了 Google Apps Admin SDK Directory API Users:update 文档,但它似乎与 2-Step 没有任何关系。

Reports API 可以找出用户的注册状态,但出于报告目的它是只读的。

authentication google-apps-script google-api google-apps
4个回答
1
投票

您所做的是删除两步验证的正确方法。正如您所提到的,如果它是在组织单位下强制执行的,则删除它会违反该规则,这就是为什么您无法执行此操作,除非您将用户移动到不强制执行的另一个 OU。

我无法找到某种方法以编程方式执行此操作。但是,您可以暂停用户。之后,用户将无法访问该帐户。该帐户仍将在您的管理控制台中可见,并且不同 Google 服务中的所有信息都将保留附加到该帐户,直到您最终删除该帐户。

当用户被暂停时,作为管理员,您可以使用服务帐户来模拟该用户。通过这样做,您可以充当该用户并编辑权限或将云端硬盘中包含的文件的所有权转移到其他帐户,这样这些文件就不会丢失。

我希望这有帮助。


1
投票

最简单的方法是创建一个不受 2FA 约束的群组(请参阅此处:https://support.google.com/a/answer/2370108)。然后将用户添加到该组,然后您可以在管理控制台的用户页面上单击“禁用2FA”。我假设您可以通过 API 执行相同的操作。

唯一的缺点是,这意味着您将拥有一个组,可以通过该组使用户免于 2FA 强制选项。因此,这是您必须接受的风险,也是您必须仔细检查的政策。


0
投票

我在文档中没有找到它,只有 REST 请求,几乎放弃了,但随后在 Google 脚本编辑器中输入“AdminDirectory.T”,它提供了自动完成的功能:

const userId = '[email protected]'
AdminDirectory.TwoStepVerification.turnOff(userId)

0
投票

消除次要因素

要从多重身份验证中完全取消注册用户,请将

enrolledFactors
设置为
null
或空数组:

admin.auth().updateUser({
  uid: '123456789',
  multiFactor: {
    enrolledFactors: null,
  },
})
.then((userRecord) => {
  console.log(userRecord.multiFactor);
})
.catch((error) => {
  console.log(error);
});

https://cloud.google.com/identity-platform/docs/admin/manage-mfa-users#removing_a_secondary_factor

© www.soinside.com 2019 - 2024. All rights reserved.