将 Active Directory 与 Google SecOps 集成

本文档介绍了如何将 Active Directory 与 Google Security Operations 集成。

使用场景

Active Directory 集成使用 Google SecOps 功能来支持以下用例:

  • 激活和停用用户:停用可能已遭入侵的用户账号,防止进一步的未经授权访问。

  • 重置密码:在 Active Directory 中自动重置用户密码,并通知用户此更改。

  • 管理群组:根据新用户的角色将其添加到适当的安全群组,并确保用户拥有正确的访问权限。

  • 检索用户信息:检索特定用户账号的用户详细信息,例如群组成员资格、上次登录时间和联系信息。

  • 自动化离职流程:在员工离职时,停用其账号、将其从群组中移除,并转移其文件所有权。

准备工作

在 Google SecOps 中配置 Active Directory 集成之前,请验证您的网络环境、Active Directory 域服务 (AD DS) 和服务账号凭证是否满足所有操作前提条件。

如需为集成准备环境,请完成以下前提条件:

  1. 验证 Google SecOps 实例(或远程代理)与 Active Directory 域控制器之间的网络连接和 DNS 解析。

  2. 可选:如果使用内部证书授权机构通过 LDAPS(端口 636,重设密码时需要)进行连接,请通过将根证书或中间证书编码为 base64 字符串来配置 CA 证书。

  3. 遵循最小权限原则创建专用 Active Directory 服务账号。

  4. 查看所需的操作权限,确定您计划运行的特定操作所需的属性和访问权限。

  5. 针对您计划使用的操作,在目标组织部门上委托权限(使用 Active Directory 用户和计算机或 PowerShell 和 dsacls),确保服务账号对 userAccountControl 属性具有明确的读写权限。

网络和 DNS 要求

Google SecOps 使用轻量级目录访问协议(LDAP 或 LDAPS)通过 TCP 直接与 Active Directory 域控制器通信。

确保您的网络环境符合以下连接规则:

  • 端口连接:确保您的网络防火墙和路由允许 Google SecOps(或您的远程代理)通过以下端口与 Active Directory 域控制器进行出站通信:

    • LDAP(标准):为未加密的 LDAP 通信打开端口 389/TCP。
    • LDAPS(推荐 - 密码必须使用此协议):打开端口 636/TCP(或自定义 SSL/TLS 端口)。LDAPS 是加密目录流量所必需的,也是密码修改操作所必需的。
  • DNS 和主机名解析:Active Directory 需要准确的主机名解析,才能匹配 SSL/TLS 证书和目录服务绑定。如果您的网域通过内部 DNS 设置由完全限定的 DNS 名称解析,则无需进行其他主机配置。如果远程代理容器映像上没有 DNS 解析,请配置 /etc/hosts 文件。

配置 /etc/hosts 文件

此配置是可选的。如果您的网域控制器已通过内部 DNS 设置进行解析,请跳过此部分。如果远程代理无法使用 DNS 解析 Active Directory 域控制器,请在 /etc/hosts 文件中手动映射主机,以匹配 SSL/TLS 证书和目录服务绑定。

如需配置 /etc/hosts 文件,请完成以下步骤:

  1. 使用管理员权限在文本编辑器中打开 /etc/hosts:

    sudo vi /etc/hosts
    
  2. 添加一个条目,将域控制器的 IP 地址映射到其完全限定域名 (FQDN):

    192.0.2.195 dc01.example.local
    
  3. 保存并关闭文件。

如果您不需要 CA 证书进行集成,请继续配置身份验证和服务账号。否则,请配置 CA 证书。

配置 CA 证书

这是可选步骤。如果您使用标准 LDAP(端口 389)进行连接,或使用公开可信的证书,请跳过此部分,直接前往身份验证和服务账号。如果您通过 LDAPS(端口 636,重设密码时需要)使用由私有或内部 CA 颁发的证书进行连接,请在设置期间提供 base64 编码的证书字符串,以建立可信 TLS 连接。

如需配置和上传 CA 证书,请完成以下步骤:

  1. 对 PEM 格式的证书文件进行编码:

    • Linux: bash base64 -w 0 mycert.crt

    • macOS: bash base64 -i mycert.crt

  2. 复制完整的输出字符串(包括编码标头),并将其粘贴到 Google SecOps 集成配置中的 CA 证书文件 - 解析为 Base64 字符串字段。

  3. 将服务器参数设置为网域控制器的 FQDN(而非其 IP 地址),以便主机名与证书上的通用名称 (CN) 或主体备用名称 (SAN) 匹配。

  4. 点击测试以验证 TLS 握手。

身份验证和服务账号要求

Active Directory 集成使用标准 AD DS 凭据进行身份验证。

确保您的身份验证设置符合以下安全做法:

  • 专用服务账号:专门为 Google SecOps 自动化 playbook 创建一个专用服务账号(例如 svc_secops_ad)。避免使用交互式用户账号或内置网域管理员账号。

  • 用户名格式:用户名可以作为用户主体名称 (UPN)(例如 svc_secops@example.local)或下级登录名 (EXAMPLE\svc_secops) 提供。

  • PoLP:请勿将服务账号添加到特权内置群组,例如 Domain Admins、Enterprise Admins 或 Account Operators。而应针对用户、计算机或群组对象所在的特定组织部门授予精细权限。

配置操作权限(最小权限)

仅向身份验证服务账号授予您计划运行的特定操作所需的 Active Directory 权限和 LDAP 属性访问权限。

请参阅下表中 Active Directory 操作的最低权限:

操作名称 所需的 AD DS 权限/扩展权限 目标对象类 说明/属性范围
Ping Read Property 用户、网域根目录 查询配置的服务账号对象(sAMAccountName、userPrincipalName、mail),以验证目录连接和凭据。
丰富实体
  • List Contents
  • Read Property(目标属性:userAccountControl、sAMAccountName、mail、memberOf、lockoutTime、pwdLastSet)
用户、计算机、群组 查询用户和计算机属性,并解析嵌套群组成员资格。 需要 userAccountControl 上的 Read Property,以防止出现 null 下标错误。
停用账号
  • Read Property:userAccountControl
  • Write Property:userAccountControl
用户 读取和设置目标用户对象上的 ACCOUNTDISABLE 标志 (0x0002)。
启用账号
  • Read Property:userAccountControl
  • Write Property:userAccountControl
用户 读取并清除目标用户对象上的 ACCOUNTDISABLE 标志 (0x0002)。
停用计算机
  • Read Property:userAccountControl
  • Write Property:userAccountControl
计算机 读取并设置目标计算机对象上的 ACCOUNTDISABLE 标志。
启用计算机
  • Read Property:userAccountControl
  • Write Property:userAccountControl
计算机 读取并清除目标计算机对象上的 ACCOUNTDISABLE 标志。
释放锁定的账号
  • Read Property:lockoutTime
  • Write Property:lockoutTime
用户 读取 lockoutTime 属性并将其设置为 0,以解锁锁定的用户账号。
强制更新密码
  • Read Property:pwdLastSet
  • Write Property:pwdLastSet
用户 读取 pwdLastSet 属性并将其设置为 0,以要求用户在下次登录时更改密码。
设置用户密码
  • 扩展右:Reset Password (User-Force-Change-Password)
  • (可选)Write Property:unicodePwd
用户 重置目标用户的密码。需要 LDAPS(端口 636)或 StartTLS。
将用户添加到群组
  • Read Property:member
  • Write Property:member
群组 将目标用户的标识名 (distinguishedName) 添加到群组的 member 属性。
从群组中移除用户
  • Read Property:member
  • Write Property:member
群组 从群组的 member 属性中移除目标用户的专有名称 (distinguishedName)。
更改用户组织部门
  • Delete Child Object(用户)在源组织部门中
  • 目标组织部门的 Create Child Object(用户)
  • Write Property:name, distinguishedName
组织部门、用户 使用 LDAP modify_dn 在组织部门之间移动用户对象。
更改主持人组织部门
  • Delete Child Object(计算机)在源组织部门中
  • 目标组织部门的 Create Child Object(计算机)
  • Write Property:name, distinguishedName
组织部门、计算机 使用 LDAP modify_dn 在组织部门之间移动计算机对象。
更新 AD 用户的属性 目标属性(例如 mail、title、department、telephoneNumber、description 或 manager)上的 Write Property 用户 修改目标用户对象上的指定属性值。
更新 AD 主机的属性 Write Property 针对目标属性(例如 description 或 location) 计算机 修改目标计算机对象上的指定属性值。
获取群组成员
  • List Contents
  • Read Property:member, sAMAccountName,distinguishedName
群组、用户、计算机 查询群组成员资格和成员账号属性。
获取经理的详细联系信息
  • Read Property:manager
  • Read Property:cn、telephoneNumber、mail、displayName、title
用户 从目标用户对象中读取 manager 属性,并检索主管的详细联系信息。
Is User In Group
  • Read Property:memberOf, sAMAccountName
用户、群组 评估用户账号是否属于指定的安全群组或通讯群组。
列出用户群组
  • Read Property:memberOf, sAMAccountName
用户、群组 返回分配给指定用户账号的所有群组的列表。
搜索 Active Directory
  • List Contents
  • Read Property(针对查询的属性)
用户、计算机、群组、组织部门 针对目录子树执行自定义 LDAP 过滤条件查询。

在 Active Directory 中委托权限

如需在不授予广泛管理权限的情况下强制执行 PoLP,请使用图形 ADUC 控制台或 PowerShell 和 dsacls 命令行工具在目标组织部门上委派权限。您只需使用其中一种方法,并且只需委托您计划执行的特定操作所需的权限。

使用 ADUC 委托控制权

如果您更喜欢使用图形界面,请使用 ADUC 中的“控制委派向导”来委派对象和属性专属权限。

在目标组织部门上运行向导,以授予您计划使用的操作(例如读取和写入账号控制标志、重置密码或解锁账号)所需的对象和属性权限。

如需了解运行该向导的分步指南,请参阅有关 AD DS 中的控制权委派的 Microsoft 文档。

使用 PowerShell 和 dsacls 委托控制

如果您更喜欢使用命令行方法或希望自动分配权限,请使用 PowerShell 和内置的 dsacls.exe 实用程序,而不是 ADUC。

仅运行适用于您计划在管理员工作站或域控制器上使用的操作的命令示例,并将目标组织部门和服务账号名称替换为您自己的:

  • 向用户对象授予对 userAccountControl 的读取和写入权限(以启用或停用用户账号并防止丰富错误): powershell dsacls.exe "OU=Users,DC=example,DC=local" /I:S /G "EXAMPLE\svc_secops_ad:RPWP;userAccountControl;user"
  • 向计算机对象授予对 userAccountControl 的读取和写入权限(以启用或停用计算机): powershell dsacls.exe "OU=Computers,DC=example,DC=local" /I:S /G "EXAMPLE\svc_secops_ad:RPWP;userAccountControl;computer"
  • 授予解锁账号权限 (lockoutTime): powershell dsacls.exe "OU=Users,DC=example,DC=local" /I:S /G "EXAMPLE\svc_secops_ad:RPWP;lockoutTime;user"
  • 授予强制更改密码权限 (pwdLastSet): powershell dsacls.exe "OU=Users,DC=example,DC=local" /I:S /G "EXAMPLE\svc_secops_ad:RPWP;pwdLastSet;user"
  • 授予重设密码权限(Reset Password 扩展权限): powershell dsacls.exe "OU=Users,DC=example,DC=local" /I:S /G "EXAMPLE\svc_secops_ad:CA;Reset Password;user"
  • 授予对安全群组的成员资格修改权限: powershell dsacls.exe "CN=SecOps-Quarantine,OU=Groups,DC=example,DC=local" /G "EXAMPLE\svc_secops_ad:RPWP;member;group"

如需详细了解语法和参数开关,请参阅有关 dsacls 的 Microsoft 文档。

集成参数

Active Directory 集成需要以下参数:

参数 说明
Server

必填。

Active Directory 服务器的主机名、DNS 名称或 IP 地址。 该集成使用 LDAP 协议进行通信。

如需使用自定义端口,请将其附加到地址(例如 mydomain.com:636)。

默认情况下,集成在启用 SSL/TLS 时使用端口 636,在停用 SSL/TLS 时使用端口 389。

Username

必填。

要连接到 Active Directory 的用户的用户名或邮箱,例如 DOMAIN\username 或 user@example.com。

此参数还接受 userPrincipalName 属性。

Password

必填。

用户账号的密码。

Domain

必填。

网络命名空间中网域的完整 DNS 路径。

请按以下格式提供网域的完全限定域名 (FQDN):SUBDOMAIN.ROOT_DOMAIN。

例如,如果您的内部 Active Directory 域是 example.local,则要输入的 FQDN 为 example.local。如果您的内部 Active Directory 网域为 corp.example.com,则要输入的 FQDN 为 corp.example.com。

Custom Query Fields

可选。

要包含在查询中的自定义 Active Directory 字段的逗号分隔列表,例如 customField1, customField2。

CA Certificate File - parsed into Base64 String

可选。

配置 CA 证书时获取的编码为 base64 格式的 CA 证书文件字符串。 请提供完整值。

Use SSL

可选。

如果选中此选项,则集成会在连接到 Active Directory 目录服务器时验证 SSL 证书,并使用安全的 LDAPS(端口 636)。

如果未选择,则使用标准 LDAP(端口 389)。

Debug Logging

可选。

如果选中,则集成会记录 Active Directory 操作的详细调试信息。

如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。

如有需要,您可以在后续阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。

操作

如需详细了解操作,请参阅 在工作桌上响应待处理的操作和在案例中运行手动操作。

将用户添加到群组

使用将用户添加到群组操作,将案例中的用户添加到一个或多个 Active Directory 群组,例如在调查期间将账号添加到受限访问群组。该操作会自动从案例中识别目标用户,并将其添加到指定群组。

此操作在 Google SecOps User 实体上运行。

操作输入

将用户添加到群组操作需要以下参数:

参数 说明
Group Name

必填。

要向其中添加用户的群组的逗号分隔列表。

操作输出

将用户添加到群组操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

将用户添加到群组操作可以返回以下输出消息:

输出消息 消息说明

Successfully added the following users to the group "GROUP_NAME" in Active Directory: ENTITY_ID

The following users were already a part of the group "GROUP_NAME" in Active Directory: ENTITY_ID

操作成功。
Action wasn't able to add the following users to the group "GROUP_NAME" in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否有权修改目标群组的 member 属性。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,以及实体标识符是否与有效的用户名或电子邮件地址匹配。

The following groups were not found in Active Directory: GROUP_NAME

未能对指定群组执行该操作。

检查 Group Name 参数中群组名称的拼写,并确认这些群组存在于配置的网域中。

No users were added to the group "GROUP_NAME" in Active Directory.

对指定群组执行的操作失败。

验证目标用户是否存在于 Active Directory 中,以及服务账号是否对指定群组具有写入权限。

No users were added to the provided groups in Active Directory.

操作失败。

确认该案例包含有效的 User 实体,并且指定的群组存在于 Active Directory 中。

Error executing action "Add User To Group". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用将用户添加到群组操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

更改主机组织部门

使用更改主机组织部门操作可将案例中的计算机移至 Active Directory 中的其他组织部门,例如将遭到入侵的机器移至具有受限政策的隔离组织部门。该操作会自动从案例中识别目标计算机,并将其移至指定的目标组织部门。

此操作在 Google SecOps Hostname 实体上运行。

操作输入

Change Host OU(更改主机组织部门)操作需要以下参数:

参数 说明
OU Name

必填。

新主机组织部门的名称。

操作输出

Change Host OU(更改主机组织部门)操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Change Host OU 操作可能会返回以下输出消息:

输出消息 消息说明
Changed OU for the following hosts: ENTITY_ID 操作成功。
Failed to change OU for the following hosts : ENTITY_ID

对指定主机执行的操作失败。

验证目标组织部门是否存在,以及服务账号是否有权在源组织部门和目标组织部门之间移动计算机对象。

The following hosts were not found in Active Directory: ENTITY_ID

对指定主机执行的操作失败。

验证计算机账号是否存在于 Active Directory 中,并且与案例中的 Hostname 实体匹配。

The action didn't change OU on any hosts.

操作失败。

请检查目标计算机和目标组织部门是否存在于 Active Directory 中,以及服务账号是否拥有移动计算机账号的权限。

Error executing action "Change Host OU". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 服务器的连接、OU Name 参数或服务账号凭证。

脚本结果

下表列出了使用更改主机组织部门操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

更改用户所属的组织部门

使用更改用户组织部门操作,将案例中的用户移至 Active Directory 中的其他组织部门,例如在突发事件或离职工作流期间将账号移至受限组织部门。该操作会自动从案例中识别目标用户,并将其移至指定的目标组织部门。

此操作在 Google SecOps User 实体上运行。

操作输入

更改用户组织部门操作需要以下参数:

参数 说明
OU Name

必填。

新用户组织部门的名称。

操作输出

更改用户组织部门操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Change User OU 操作可能会返回以下输出消息:

输出消息 消息说明
Changed OU for the following users: ENTITY_ID 操作成功。
Failed to change OU for the following users : ENTITY_ID

未能对指定用户执行该操作。

验证目标组织部门是否存在,以及服务账号是否有权在来源组织部门和目标组织部门之间移动用户对象。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

The action didn't change OU on any users.

操作失败。

请检查目标用户和目标组织部门是否存在于 Active Directory 中,以及服务账号是否有权移动用户账号。

Error executing action "Change User OU". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 服务器的连接、OU Name 参数或服务账号凭证。

脚本结果

下表列出了使用更改用户组织部门操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

停用账号

使用停用账号操作在 Active Directory 中停用用户账号。此操作会自动定位到与该支持请求关联的用户。

此操作在 Google SecOps User 实体上运行。

操作输入

无。

操作输出

停用账号操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

停用账号操作可能会返回以下输出消息:

输出消息 消息说明
Disabled account for the following users: ENTITY_ID 操作成功。
Failed to disable account for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否对目标用户账号的 userAccountControl 属性具有读写权限,以及用户是否不是受保护的管理员账号。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No users were disabled in Active Directory.

操作失败。

确认支持请求包含有效的 User 实体,并且服务账号有权停用目标账号。

Error executing action "Disable Account". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用停用账号操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

停用计算机

使用停用计算机操作在 Active Directory 中停用计算机账号,以防止被入侵或未经授权的机器向网域进行身份验证。该操作会自动定位到与案例关联的主机名。

此操作在 Google SecOps Hostname 实体上运行。

操作输入

无。

操作输出

停用计算机操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

停用计算机操作可能会返回以下输出消息:

输出消息 消息说明

Successfully disabled the following computers in Active Directory: ENTITY_ID

The following computers were already disabled in Active Directory: ENTITY_ID

操作成功。
Action wasn't able to disable the following computers in Active Directory: ENTITY_ID

对指定计算机执行的操作失败。

验证服务账号是否对目标计算机对象上的 userAccountControl 属性具有读写权限。

The following computers were not found in Active Directory: ENTITY_ID

对指定计算机执行的操作失败。

验证计算机账号是否存在于 Active Directory 中,并且与案例中的 Hostname 实体匹配。

No computers were disabled in Active Directory.

操作失败。

确认案例包含有效的 Hostname 实体,并且服务账号有权停用目标计算机账号。

Error executing action "Disable Computer". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用停用计算机操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

启用账号

使用启用账号操作在 Active Directory 中重新启用已停用的用户账号。该操作会自动定位到与该支持请求关联的用户。

此操作在 Google SecOps User 实体上运行。

操作输入

无。

操作输出

启用账号操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Enable Account(启用账号)操作可能会返回以下输出消息:

输出消息 消息说明

Successfully enabled the following users in Active Directory: ENTITY_ID

The following users were already enabled in Active Directory: ENTITY_ID

操作成功。
Action wasn't able to enable the following users in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否对目标用户账号的 userAccountControl 属性具有读写权限。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No users were enabled in Active Directory.

操作失败。

确认支持请求包含有效的 User 实体,并且服务账号有权启用目标账号。

Error executing action "Enable Account". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用启用账号操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

启用计算机

使用启用计算机操作在 Active Directory 中重新启用已停用的计算机账号,以便机器可以再次向网域进行身份验证。该操作会自动定位到与案例关联的主机名。

此操作在 Google SecOps Hostname 实体上运行。

操作输入

无。

操作输出

启用计算机操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

启用计算机操作可能会返回以下输出消息:

输出消息 消息说明

Successfully enabled the following computers in Active Directory: ENTITY_ID

The following computers were already enabled in Active Directory: ENTITY_ID

操作成功。
Action wasn't able to enable the following computers in Active Directory: ENTITY_ID

对指定计算机执行的操作失败。

验证服务账号是否对目标计算机对象上的 userAccountControl 属性具有读写权限。

The following computers were not found in Active Directory: ENTITY_ID

对指定计算机执行的操作失败。

验证计算机账号是否存在于 Active Directory 中,并且与案例中的 Hostname 实体匹配。

No computers were enabled in Active Directory.

操作失败。

确认该案例包含有效的 Hostname 实体,并且服务账号有权启用目标计算机账号。

Error executing action "Enable Computer". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用启用计算机操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

丰富实体

使用丰富实体操作,检索案例中用户和计算机的 Active Directory 个人资料详细信息、账号状态和群组成员资格。您可以使用所有可用的目录信息来丰富实体,也可以将结果和案例墙表限制为特定属性。

此操作是异步的。如有需要,请在 Google SecOps IDE 中调整操作的脚本超时值。

Enrich Entities 操作在以下 Google SecOps 实体上运行:

  • User
  • Hostname

操作输入

Enrich Entities 操作需要以下参数:

参数 说明
Mark Entities as Internal

可选。

如果选择此选项,该操作会自动将成功扩充的实体标记为内部实体。

默认处于启用状态。

Create Case Wall Table

可选。

如果选中,该操作会生成一个案例墙表格,其中包含每个丰富实体的检索到的 Active Directory 属性。

默认处于启用状态。

Specific Attribute Names To Enrich With

可选。

用于丰富实体的属性名称的逗号分隔列表。

如果您未提供任何值,该操作会使用所有可用属性来丰富实体。如果某个属性包含多个值,该操作会使用所有可用值来丰富该属性。

此参数区分大小写。

Should Case Wall Table be filtered by the specified Attributes?

可选。

如果选中,该操作将仅使用 Specific Attribute Names To Enrich With 中指定的属性填充案例墙表。

Should JSON result be filtered by the specified Attributes?

可选。

如果选中,JSON 结果将仅返回 Specific Attribute Names To Enrich With 中指定的属性。

操作输出

丰富实体操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 可用
实体丰富化表 可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
案例墙表格

选择 Create Case Wall Table 时,丰富实体操作会在案例墙上提供下表:

  • 表名称:Report for: <var class="readonly">ENTITY_ID</var>
  • 列:为实体检索到的 Active Directory 属性名称和值(如果选择了 Should Case Wall Table be filtered by the specified Attributes?,则由 Specific Attribute Names To Enrich With 参数过滤)。
实体丰富化

丰富实体操作支持以下实体丰富:

扩充项字段名称 逻辑
AD_primaryGroupID 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_logonCount 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_cn 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_countryCode 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectClass 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_userPrincipalName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_adminCount 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lastLogonTimestamp 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_manager 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_instanceType 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_distinguishedName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_dSCorePropagationData 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_msDS-SupportedEncryptionTypes 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectSid 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_whenCreated 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_uSNCreated 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lockoutTime 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_badPasswordTime 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_pwdLastSet 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_sAMAccountName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectCategory 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lastLogon 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectGUID 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_whenChanged 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_badPwdCount 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_accountExpires 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_displayName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_name 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_memberOf 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_codePage 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_userAccountControl 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_sAMAccountType 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_uSNChanged 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_sn 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_givenName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lastLogoff 如果该值存在于 JSON 结果中,则此操作会返回该值。
JSON 结果

以下示例展示了使用丰富实体操作时收到的 JSON 结果输出:

[
    {
        "EntityResult": {
            "primaryGroupID": [513],
            "logonCount": [6505],
            "cn": ["user name"],
            "countryCode": [0],
            "objectClass": ["top", "person", "organizationalPerson"],
            "userPrincipalName": ["user@example.com"],
            "adminCount": [1],
            "lastLogonTimestamp": ["2019-01-09 08:42:03.540783+00:00"],
            "manager": ["CN=user name,OU=R&D,OU=TLV,OU=host name,DC=domain,DC=LOCAL"],
            "instanceType": [4],
            "distinguishedName": ["CN=user name,OU=R&D,OU=TLV,OU=host,DC=domain,DC=LOCAL"],
            "dSCorePropagationData": ["2019-01-14 14:39:16+00:00"],
            "msDS-SupportedEncryptionTypes": [0],
            "objectSid": ["ID"],
            "whenCreated": ["2011-11-07 08:00:44+00:00"],
            "uSNCreated": [7288202],
            "lockoutTime": ["1601-01-01 00:00:00+00:00"],
            "badPasswordTime": ["date"],
            "pwdLastSet": ["date"],
            "sAMAccountName": ["example"],
            "objectCategory": ["CN=Person,CN=Schema,CN=Configuration,DC=host,DC=LOCAL"],
            "lastLogon": ["2019-01-14 17:13:54.463070+00:00"],
            "objectGUID": ["GUID"],
            "whenChanged": ["2019-01-14 16:49:01+00:00"],
            "badPwdCount": [1],
            "accountExpires": ["9999-12-31 23:59:59.999999"],
            "displayName": ["example user"],
            "name": ["user"],
            "memberOf": ["CN=\\\\u05e7\\\\u05d1\\\\u05d5\\\\u05e6\\\\u05d4 \\\\u05d1\\\\u05e2\\\\u05d1\\\\u05e8\\\\u05d9\\\\u05ea,OU=TEST,OU=QA,OU=IT,OU=TLV,OU=host,DC=domain,DC=LOCAL", "CN=Organization Management,OU=Microsoft Exchange Security Groups,DC=domain,DC=LOCAL", "CN=Local Admin,OU=Groups,OU=IT,OU=TLV,OU=host,DC=domain,DC=LOCAL"],
            "codePage": [0],
            "userAccountControl": [111],
            "sAMAccountType": [805306368],
            "uSNChanged": [15301168],
            "sn": ["example"],
            "givenName": ["user"],
            "lastLogoff": ["1601-01-01 00:00:00+00:00"]
        },
        "Entity": "user@example.com"
    }
]
输出消息

Enrich Entities 操作可能会返回以下输出消息:

输出消息 消息说明

Active Directory Permalink: SERVER

Enriched the following Users ENTITY_ID

Enriched the following Hosts ENTITY_ID

All entities were enriched.

操作成功。
The following entities were not found in Active Directory: ENTITY_ID

对指定实体执行的操作失败。

验证用户或主机账号是否存在于 Active Directory 中,并且与案例中的实体标识符匹配。

Failed to enrich the following Users ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否有权读取目标用户账号的属性(包括 userAccountControl),并检查 Active Directory 中是否存在任何自定义属性。

Failed to enrich the following Hosts ENTITY_ID

对指定主机执行的操作失败。

验证服务账号是否有权读取目标计算机账号的属性(包括 userAccountControl),并检查 Active Directory 中是否存在任何自定义属性。

No entities were enriched.

操作失败。

确认支持请求包含 Active Directory 中存在的有效 User 或 Hostname 实体。

Error executing action "Enrich Entities". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 服务器的连接、自定义查询字段或服务账号凭证。

脚本结果

下表列出了使用丰富实体操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

强制更新密码

使用强制更新密码操作,要求用户在下次登录时更改密码。该操作会自动定位到与该支持请求关联的用户。

此操作在 Google SecOps User 实体上运行。

操作输入

无。

操作输出

强制更新密码操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Force Password Update 操作可能会返回以下输出消息:

输出消息 消息说明
Forced password update on next logon for the following users: ENTITY_ID 操作成功。
Failed to force password update on next logon for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号对目标用户账号的 pwdLastSet 属性具有读写权限。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

Password update wasn't forced on any users.

操作失败。

确认该案例包含有效的 User 实体,并且服务账号有权更新密码到期设置。

Error executing action "Force Password Update". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用强制更新密码操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

获取群组成员

使用获取群组成员操作可列出属于特定 Active Directory 群组的用户、计算机或两者。您可以选择将搜索范围缩小到特定组织部门或父级群组,并包含嵌套子群组中的成员。

此操作不会在 Google SecOps 实体上运行。

操作输入

获取群组成员操作需要以下参数:

参数 说明
Group Name

必填。

包含所列成员的群组的名称。

Members Type

必填。

要从群组中检索的成员类型。

可能的值如下:

  • Only Users
  • Only Hosts
  • Both

默认值为 Only Users。

Where To Search

必填。

要将搜索范围限定到的特定 Organizational Unit 或 Group。

可能的值如下:

  • Select Option
  • Organizational Unit
  • Group

默认值为 Select Option。

Filter Object Value

可选。

操作在其中搜索目标群组的 Organizational Unit 或 Group 的名称。如果 Where To Search 设置为 Organizational Unit 或 Group,则此参数是必需的。

Perform Nested Search

可选。

如果选中,该操作会从属于目标群组的嵌套子群组中检索成员。

Limit

可选。

要从 Active Directory 检索的列表数量上限。

默认值为 100。

操作输出

获取群组成员操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 可用
丰富化表 不可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
案例墙表格

获取群组成员操作在案例墙上提供以下表格:

  • 表名称:Members of Active Directory group: <var class="readonly">GROUP_NAME</var>
  • 列:
    • Distinguished Name
    • SAM Account Name
    • User Principal Name
    • Type
JSON 结果

以下示例展示了使用获取群组成员操作时收到的 JSON 结果输出:

[
  {
    "dn": "CN=Example User1,OU=User Accounts,DC=example,DC=local",
    "sAMAccountName": "ExampleUser1",
    "userPrincipalName": "user1@example.local",
    "type": "CN=Person,CN=Schema,CN=Configuration,DC=example,DC=local"
  },
  {
    "dn": "CN=Example User2,CN=Users,DC=example,DC=local",
    "sAMAccountName": "ExampleUser2",
    "userPrincipalName": "user2@example.local",
    "type": "CN=Person,CN=Schema,CN=Configuration,DC=example,DC=local"
  }
]
输出消息

获取群组成员操作可以返回以下输出消息:

输出消息 消息说明

Successfully retrieved members of the group "GROUP_NAME" from Active Directory.

Group "GROUP_NAME" doesn't contain any members matching search criteria in Active Directory.

操作成功。
Error executing action "Get Group Members". Reason: Filter Object Value should be provided

操作失败。

当 Where To Search 设置为 Organizational Unit 或 Group 时,请在 Filter Object Value 参数中提供有效的组织部门或群组名称。

Error executing action "Get Group Members". Reason: Given value for Limit should be a positive number.

操作失败。

在 Limit 参数中输入一个大于 0 的整数。

Error executing action "Get Group Members". Reason: Given group doesn't exist in Active Directory.

操作失败。

检查 Group Name 参数中的群组名称,并确认该群组存在于配置的搜索范围内。

Error executing action "Get Group Members". Reason: Specified Organizational Unit doesn't exist in Active Directory.

操作失败。

验证 Filter Object Value 中指定的组织部门是否存在于 Active Directory 中。

Error executing action "Get Group Members". Reason: Specified Group in "Filter Object Value" doesn't exist in Active Directory.

操作失败。

验证 Filter Object Value 中指定的父级群组是否存在于 Active Directory 中。

Error executing action "Get Group Members". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用获取群组成员操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

获取经理详细联系信息

使用获取主管详细联系信息操作,在 Active Directory 中查找用户的主管并检索主管的详细联系信息。该操作会自动定位到与案例关联的用户。

此操作在 Google SecOps User 实体上运行。

操作输入

无。

操作输出

获取经理详细联系信息操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 可用
实体丰富化表 可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
案例墙表格

获取经理详细联系信息操作会在支持请求墙上提供下表:

  • 表名称:Manager Contact: <var class="readonly">ENTITY_ID</var>
  • 列:
    • Manager Name
    • Manager Phone
实体丰富化

获取经理详细联系信息操作支持以下实体丰富:

扩充项字段名称 逻辑
AD_Manager_Name 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_Manager_phone 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_primaryGroupID 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_logonCount 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_cn 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_countryCode 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectClass 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_userPrincipalName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_adminCount 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lastLogonTimestamp 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_manager 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_instanceType 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_distinguishedName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_dSCorePropagationData 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_msDS-SupportedEncryptionTypes 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectSid 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_whenCreated 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_uSNCreated 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lockoutTime 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_badPasswordTime 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_pwdLastSet 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_sAMAccountName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectCategory 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lastLogon 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_objectGUID 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_whenChanged 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_badPwdCount 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_accountExpires 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_displayName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_name 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_memberOf 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_codePage 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_userAccountControl 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_sAMAccountType 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_uSNChanged 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_sn 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_givenName 如果该值存在于 JSON 结果中,则此操作会返回该值。
AD_lastLogoff 如果该值存在于 JSON 结果中,则此操作会返回该值。
JSON 结果

以下示例展示了使用获取经理详细联系信息操作时收到的 JSON 结果输出:

[
   {
        "EntityResult":
        {
            "primaryGroupID": [513],
            "logonCount": [6505],
            "cn": ["user name"],
            "countryCode": [0],
            "objectClass": ["top", "person", "organizationalPerson"],
            "userPrincipalName": ["user@example.com"],
            "adminCount": [1],
            "lastLogonTimestamp": ["2019-01-09 08:42:03.540783+00:00"],
            "manager": ["CN=user name,OU=R&D,OU=TLV,OU=host name,DC=domain,DC=LOCAL"],
            "instanceType": [4],
            "distinguishedName": ["CN=user name,OU=R&D,OU=TLV,OU=host,DC=domain,DC=LOCAL"],
            "dSCorePropagationData": ["2019-01-14 14:39:16+00:00"],
            "msDS-SupportedEncryptionTypes": [0],
            "objectSid": ["ID"],
            "whenCreated": ["2011-11-07 08:00:44+00:00"],
            "uSNCreated": [7288202],
            "lockoutTime": ["1601-01-01 00:00:00+00:00"],
            "badPasswordTime": ["date"],
            "pwdLastSet": ["date"],
            "sAMAccountName": ["example"],
            "objectCategory": ["CN=Person,CN=Schema,CN=Configuration,DC=host,DC=LOCAL"],
            "lastLogon": ["2019-01-14 17:13:54.463070+00:00"],
            "objectGUID": ["GUID"],
            "whenChanged": ["2019-01-14 16:49:01+00:00"],
            "badPwdCount": [1],
            "accountExpires": ["9999-12-31 23:59:59.999999"],
            "displayName": ["example"],
            "name": ["user"],
            "memberOf": ["CN=\\\\u05e7\\\\u05d1\\\\u05d5\\\\u05e6\\\\u05d4 \\\\u05d1\\\\u05e2\\\\u05d1\\\\u05e8\\\\u05d9\\\\u05ea,OU=TEST,OU=QA,OU=IT,OU=TLV,OU=host,DC=domain,DC=LOCAL", "CN=Organization Management,OU=Microsoft Exchange Security Groups,DC=domain,DC=LOCAL", "CN=Local Admin,OU=Groups,OU=IT,OU=TLV,OU=host,DC=domain,DC=LOCAL"],
            "codePage": [0],
            "userAccountControl": [111],
            "sAMAccountType": [805306368],
            "uSNChanged": [15301168],
            "sn": ["example"],
            "givenName": ["user"],
            "lastLogoff": ["1601-01-01 00:00:00+00:00"]
        },
        "Entity": "user@example.com"
    }
]
输出消息

获取经理详细联系信息操作可以返回以下输出消息:

输出消息 消息说明
Retrieved manager details for the following users: ENTITY_ID 操作成功。
The following users don't have managers specified in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证 Active Directory 中目标用户账号的 manager 属性是否已填充。

Failed to retrieve manager details for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否有权读取 Active Directory 中的 manager 属性和主管的用户个人资料。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No manager details were retrieved for the provided users.

操作失败。

确认该案例包含有效的 User 实体,且这些实体在 Active Directory 中分配了管理员。

Error executing action "Get Manager Contact Details". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用获取经理详细联系信息操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

用户是否在群组中

使用用户是否在群组中操作可检查特定用户是否属于给定的 Active Directory 群组。默认情况下,该操作会检查案例中的 User 实体,您也可以在 User Name 参数中输入逗号分隔列表形式的用户名,以直接检查特定账号。

此操作在 Google SecOps User 实体上运行。

操作输入

Is User In Group 操作需要以下参数:

参数 说明
Group Name

必填。

要检查的群组名称,例如 administrators。

User Name

可选。

要检查的用户名逗号分隔列表。

如果您不提供值,该操作会检查案例中的 User 实体。

Where To Search

必填。

要将搜索范围限定到的特定 Organizational Unit 或 Group。

可能的值如下:

  • Select Option
  • Organizational Unit
  • Group

默认值为 Select Option。

Filter Object Value

可选。

Organizational Unit 或 Group 的名称,操作会在其中搜索目标群组。如果 Where To Search 设置为 Organizational Unit 或 Group,则此参数是必需的。

Search In Subgroups

可选。

如果选中,该操作会在嵌套子群组中以递归方式搜索。

操作输出

Is User In Group 操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
JSON 结果

以下示例展示了使用用户是否在群组中操作时收到的 JSON 结果输出:

[
    {
        "EntityResult": true,
        "Entity": "USER1@EXAMPLE.COM"
    }, {
        "EntityResult": false,
        "Entity": "USER2@EXAMPLE.COM"
    }, {
        "EntityResult": true,
        "Entity": "USER3@EXAMPLE.COM"
    }
]
输出消息

Is User In Group 操作可以返回以下输出消息:

输出消息 消息说明

USER_NAME IN GROUP_NAME;

USER_NAME NOT in GROUP_NAME;

操作成功。
The following users were not found in Active Directory: USER_NAME

未能对指定用户执行该操作。

验证用户名或 User 实体是否存在于 Active Directory 中。

None of the provided users were found in Active Directory.

操作失败。

确认该支持请求包含有效的 User 实体,或者 User Name 参数中指定的用户名存在于 Active Directory 中。

Error executing action "Is User In Group". Reason: Filter Object Value should be provided

操作失败。

当 Where To Search 设置为 Organizational Unit 或 Group 时,请在 Filter Object Value 参数中提供有效的组织部门或群组名称。

Error executing action "Is User In Group". Reason: Given group doesn't exist in Active Directory.

操作失败。

检查 Group Name 参数中的群组名称,并确认该群组存在于配置的搜索范围内。

Error executing action "Is User In Group". Reason: Specified Organizational Unit doesn't exist in Active Directory.

操作失败。

验证 Filter Object Value 中指定的组织部门是否存在于 Active Directory 中。

Error executing action "Is User In Group". Reason: Specified Group in "Filter Object Value" doesn't exist in Active Directory.

操作失败。

验证 Filter Object Value 中指定的父级群组是否存在于 Active Directory 中。

Error executing action "Is User In Group". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用用户是否在群组中操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

列出用户群组

使用列出用户群组操作可检索用户所属的所有 Active Directory 群组的列表。该操作会自动定位到与案例关联的用户。

此操作在 Google SecOps User 实体上运行。

操作输入

无。

操作输出

列出用户群组操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
JSON 结果

以下示例展示了使用列出用户群组操作时收到的 JSON 结果输出:

[
    {
        "EntityResult": ["Domain Users"],
        "Entity": "user@example.com"
    }
]
输出消息

列出用户群组操作可以返回以下输出消息:

输出消息 消息说明
Groups were listed for the following users: ENTITY_ID 操作成功。
No groups were found for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否已分配给 Active Directory 中 memberOf 属性中的至少一个显式群组。

Failed to list groups for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否有权读取目标用户账号的 memberOf 属性。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No groups were listed.

操作失败。

确认该用例包含属于 Active Directory 中群组的有效 User 实体。

Error executing action "List User Groups". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用列出用户群组操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

Ping

使用 Ping 操作验证 Google SecOps 能否使用配置的集成设置连接到 Active Directory 目录服务器并进行身份验证。

此操作不会在 Google SecOps 实体上运行。

操作输入

无。

操作输出

Ping 操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Ping 操作可能会返回以下输出消息:

输出消息 消息说明
Connected successfully. 操作成功。
Error executing action "Ping". Reason: ERROR_REASON

操作失败。

请检查集成配置中的服务器地址、端口、SSL 设置或服务账号凭证。

脚本结果

下表列出了使用 Ping 操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

释放锁定的账号

使用解锁账号操作,解锁 Active Directory 中因登录失败次数过多而被锁定的用户账号。该操作会自动定位到与案例关联的用户。

此操作在 Google SecOps User 实体上运行。

操作输入

无。

操作输出

Release Locked Account 操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Release Locked Account 操作可能会返回以下输出消息:

输出消息 消息说明
Unlocked account for the following users: ENTITY_ID 操作成功。
Failed to unlock account for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号对目标用户账号的 lockoutTime 属性具有读写权限。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No accounts were unlocked.

操作失败。

确认支持请求包含有效的 User 实体,并且服务账号有权解锁目标账号。

Error executing action "Release Locked Account". Reason: ERROR_REASON

操作失败。

请检查与 Active Directory 目录服务器的连接或服务账号凭证。

脚本结果

下表列出了使用释放锁定的账号操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

从群组中移除用户

使用从群组中移除用户操作,从一个或多个 Active Directory 群组中移除案例中的用户,例如在突发事件期间撤消提升的群组访问权限。该操作会自动从支持请求中识别目标用户,并将其从指定群组中移除。

此操作在 Google SecOps User 实体上运行。

操作输入

从群组中移除用户操作需要以下参数:

参数 说明
Group Name

必填。

要从中移除用户的群组的英文逗号分隔列表。

操作输出

从群组中移除用户操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

从群组中移除用户操作可能会返回以下输出消息:

输出消息 消息说明

Successfully removed the following users from the group "GROUP_NAME" in Active Directory: ENTITY_ID

The following users were not a part of the group "GROUP_NAME" in Active Directory: ENTITY_ID

操作成功。
Action wasn't able to remove the following users from the group "GROUP_NAME" in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证服务账号是否有权修改目标群组的 member 属性。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

The following groups were not found in Active Directory: GROUP_NAME

未能对指定群组执行该操作。

检查 Group Name 参数中群组名称的拼写,并确认这些群组存在于配置的网域中。

No users were removed from the group "GROUP_NAME" in Active Directory.

对指定群组执行的操作失败。

验证目标用户是否存在于 Active Directory 中,以及服务账号是否对指定群组具有写入权限。

No users were removed from the provided groups in Active Directory.

操作失败。

确认该案例包含有效的 User 实体,并且指定的群组存在于 Active Directory 中。

Error executing action "Remove User From Group". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用从群组中移除用户操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

搜索 Active Directory

使用搜索 Active Directory 操作,通过内置搜索条件或自定义查询在目录中搜索用户、计算机、群组或组织部门。您还可以按特定组织部门过滤搜索结果,并选择要在结果中包含哪些目录字段。

此操作不会在 Google SecOps 实体上运行。

操作输入

搜索 Active Directory 操作需要以下参数:

参数 说明
Search Condition

必填。

要应用于搜索的条件。

可能的值如下:

  • Contains
  • Exact Match
  • Starts With
  • Custom LDAP Query

默认值为 Contains。

Include Domain

可选。

如果选中,则在使用 Contains、Exact Match 或 Starts With 条件进行搜索时,操作会包含网域组件。

Search Object

必填。

不使用 Custom LDAP Query 时要搜索的对象类型。

可能的值如下:

  • Select Option
  • User
  • Host
  • Group
  • Organizational Unit

默认值为 Select Option。

Filter Object Value

必填。

要作为过滤条件的对象值,或在 Search Condition 设置为 Custom LDAP Query 时的完整 LDAP 查询字符串。

Custom Fields

可选。

要在搜索结果中返回的 LDAP 属性的逗号分隔列表。

Specific OUs to Search

可选。

以英文逗号分隔的组织部门名称列表,用于限制搜索范围。

Include Default Search Fields

可选。

如果选择此选项,则除了任何指定的 Custom Fields 之外,该操作还会在返回的结果中包含默认 Active Directory 字段。

默认处于启用状态。

Max Records To Return

可选。

从 Active Directory 检索的记录数上限。

默认值为 100。

Sort Field

可选。

用于对返回的条目进行排序的 LDAP 属性名称。

操作输出

搜索 Active Directory 操作会提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 可用
丰富化表 不可用
JSON 结果 可用
输出消息 可用
脚本结果 可用
案例墙表格

Search Active Directory 操作会在案例墙上提供下表:

  • 表名称:Active Directory Search Results
  • 列:为匹配的目录条目返回的 Active Directory 属性(基于 Include Default Search Fields 和 Custom Fields)。
JSON 结果

以下示例展示了使用搜索 Active Directory 操作时收到的 JSON 结果输出:

[
      {
        "primaryGroupID": [
          513
        ],
        "logonCount": [
          6505
        ],
        "cn": [
          "user name"
        ],
        "countryCode": [
          0
        ],
        "objectClass": [
          "top",
          "person",
          "organizationalPerson"
        ],
        "userPrincipalName": [
          "user@example.com"
        ],
        "adminCount": [
          1
        ],
        "lastLogonTimestamp": [
          "2019-01-09 08:42:03.540783+00:00"
        ],
        "manager": [
          "CN=user name,OU=R&D,OU=TLV,OU=host name,DC=domain,DC=LOCAL"
        ],
        "instanceType": [
          4
        ],
        "distinguishedName": [
          "CN=user name,OU=R&D,OU=TLV,OU=host,DC=domain,DC=LOCAL"
        ],
        "dSCorePropagationData": [
          "2019-01-14 14:39:16+00:00"
        ],
        "msDS-SupportedEncryptionTypes": [
          0
        ],
        "objectSid": [
          "ID"
        ],
        "whenCreated": [
          "2011-11-07 08:00:44+00:00"
        ],
        "uSNCreated": [
          7288202
        ],
        "lockoutTime": [
          "1601-01-01 00:00:00+00:00"
        ],
        "badPasswordTime": [
          "date"
        ],
        "pwdLastSet": [
          "date"
        ],
        "sAMAccountName": [
          "example"
        ],
        "objectCategory": [
          "CN=Person,CN=Schema,CN=Configuration,DC=host,DC=LOCAL"
        ],
        "lastLogon": [
          "2019-01-14 17:13:54.463070+00:00"
        ],
        "objectGUID": [
          "GUID"
        ],
        "whenChanged": [
          "2019-01-14 16:49:01+00:00"
        ],
        "badPwdCount": [
          1
        ],
        "accountExpires": [
          "9999-12-31 23:59:59.999999"
        ],
        "displayName": [
          "example"
        ],
        "name": [
          "user"
        ],
        "memberOf": [
          "CN=\\\\u05e7\\\\u05d1\\\\u05d5\\\\u05e6\\\\u05d4 \\\\u05d1\\\\u05e2\\\\u05d1\\\\u05e8\\\\u05d9\\\\u05ea,OU=TEST,OU=QA,OU=IT,OU=TLV,OU=host,DC=domain,DC=LOCAL",
          "CN=Organization Management,OU=Microsoft Exchange Security Groups,DC=domain,DC=LOCAL",
          "CN=Local Admin,OU=Groups,OU=IT,OU=TLV,OU=host,DC=domain,DC=LOCAL"
        ],
        "codePage": [
          0
        ],
        "userAccountControl": [
          111
        ],
        "sAMAccountType": [
          805306368
        ],
        "uSNChanged": [
          15301168
        ],
        "sn": [
          "example"
        ],
        "givenName": [
          "user"
        ],
        "lastLogoff": [
          "1601-01-01 00:00:00+00:00"
        ]
      }
    ]
输出消息

搜索 Active Directory 操作可以返回以下输出消息:

输出消息 消息说明

Successfully performed the query "QUERY_STRING" in Active Directory.

No results to show following the query: "QUERY_STRING".

操作成功。
Error executing action "Search Active Directory". Reason: you need to select "Search Object" or choose "Custom LDAP Query" as a "Search Condition"

操作失败。

在 Search Object 参数中选择有效的对象类型,或将 Search Condition 更改为 Custom LDAP Query。

Error executing action "Search Active Directory". Reason: Value for the parameter "Max Records To Return" should be a positive number.

操作失败。

请在 Max Records To Return 参数中输入一个大于 0 的整数。

Error executing action "Search Active Directory". Reason: The following OUs were not found in Active Directory: OU_NAMES

操作失败。

检查 Specific OUs to Search 参数中组织部门的拼写,并确认它们存在于 Active Directory 中。

Error executing action "Search Active Directory". Reason: Knowingly invalid query was executed: "QUERY_STRING". Please verify the inputs and try again.

操作失败。

检查 Filter Object Value 参数中自定义查询或过滤条件值的语法,并验证任何指定的 Custom Fields 或 Sort Field 名称是否为有效的 LDAP 属性。

Error executing action "Search Active Directory". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用搜索 Active Directory 操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

设置用户密码

使用设置用户密码操作,将案例中用户的密码重置为新密码。确保集成通过 SSL (LDAPS) 连接,并且新密码符合网域的密码复杂性规则。

此操作在 Google SecOps User 实体上运行。

操作输入

设置用户密码操作需要以下参数:

参数 说明
New Password

必填。

新密码值。

操作输出

设置用户密码操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

设置用户密码操作可能会返回以下输出消息:

输出消息 消息说明
Reset password for the following users: ENTITY_ID 操作成功。
Failed to reset password for the following users: ENTITY_ID

未能对指定用户执行该操作。

验证新密码是否符合网域密码复杂度和历史记录要求,以及目标用户是否不是受保护的管理员账号。

The following users were not found in Active Directory: ENTITY_ID

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No passwords were changed.

操作失败。

请确认该案例包含有效的 User 实体,并且服务账号有权在目标账号上重置密码。

Failed to execute "Set User Password" action! Watch Over Extended Rights permission or SSL connection.

操作失败。

确保在集成配置中选择了 Use SSL(端口 636 上的 LDAPS),并且服务账号具有重置密码扩展权限。

Error executing action "Set User Password". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用设置用户密码操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

更新 AD 主机的属性

使用更新 AD 主机的特性操作来更新案例中计算机账号的特定目录属性,例如使用突发事件备注更新计算机的 Description 字段。该操作会自动从案例中识别目标计算机并应用新值。

此操作在 Google SecOps Hostname 实体上运行。

操作输入

更新 AD 主机的属性操作需要以下参数:

参数 说明
Attribute Name

必填。

要更新的属性的名称,例如 Description。

Attribute Value

必填。

属性的新值。

操作输出

更新 AD 主机的属性操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

更新 AD 主机的属性操作可以返回以下输出消息:

输出消息 消息说明
Successfully updated attribute "ATTRIBUTE_NAME" on the following hosts in Active Directory: ENTITY_ID_LIST 操作成功。
Action wasn't able to update attribute "ATTRIBUTE_NAME" on the following hosts in Active Directory: ENTITY_ID_LIST

对指定主机执行的操作失败。

验证服务账号对目标计算机账号上的指定属性具有写入权限,并且值格式对该属性有效。

The following hosts were not found in Active Directory: ENTITY_ID_LIST

对指定主机执行的操作失败。

验证计算机账号是否存在于 Active Directory 中,并且与案例中的 Hostname 实体匹配。

No hosts were updated in Active Directory.

操作失败。

请确认该案例包含有效的 Hostname 实体,并且服务账号有权更新指定属性。

Error executing action "Update attributes of an AD Host". Reason: Provided attribute doesn't exist in Active Directory.

操作失败。

检查 Attribute Name 参数中属性的拼写,并确认它是有效的 Active Directory 计算机属性。

Error executing action "Update attributes of an AD Host". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用更新 AD 主机的属性操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

更新 AD 用户的属性

使用更新 AD 用户的属性操作可更新案例中用户账号的特定目录属性,例如更新用户的 Description、title 或 department 字段。该操作会自动从支持请求中识别目标用户并应用新值。

此操作在 Google SecOps User 实体上运行。

操作输入

更新 AD 用户的属性操作需要以下参数:

参数 说明
Attribute Name

必填。

要更新的属性的名称,例如 Description。

Attribute Value

必填。

属性的新值。

操作输出

更新 AD 用户的属性操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表格 不可用
丰富化表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

更新 AD 用户的属性操作可以返回以下输出消息:

输出消息 消息说明
Successfully updated attribute "ATTRIBUTE_NAME" for the following users in Active Directory: ENTITY_ID_LIST 操作成功。
Action wasn't able to update attribute "ATTRIBUTE_NAME" for the following users in Active Directory: ENTITY_ID_LIST

未能对指定用户执行该操作。

请验证服务账号是否对目标用户账号的指定属性具有写入权限,以及值格式是否对该属性有效。

The following users were not found in Active Directory: ENTITY_ID_LIST

未能对指定用户执行该操作。

验证用户账号是否存在于 Active Directory 中,并且与案例中的 User 实体匹配。

No users were updated in Active Directory.

操作失败。

确认该支持请求包含有效的 User 实体,并且服务账号有权更新指定属性。

Error executing action "Update attributes of an AD User". Reason: Provided attribute doesn't exist in Active Directory.

操作失败。

检查 Attribute Name 参数中属性的拼写,并确认它是有效的 Active Directory 用户属性。

Error executing action "Update attributes of an AD User". Reason: ERROR_REASON

操作失败。

检查与 Active Directory 目录服务器的连接、输入参数或服务账号凭证。

脚本结果

下表列出了使用更新 AD 用户的属性操作时脚本结果输出的值:

脚本结果名称 值
is_success true 或 false

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。