You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API验证ServiceNow实例中用户对指定表的访问权限

用ServiceNow REST API验证用户表访问权限

一、通用步骤:判断用户对特定表的访问权限

1. 认证方式

请求时需携带认证信息,推荐使用Basic认证:

  • 将用户名和密码用冒号拼接后做Base64编码,在请求头中添加:
    Authorization: Basic <Base64编码的用户名:密码>
    

2. 调用权限检查API

使用ServiceNow的access/table接口直接查询用户对目标表的CRUD权限:

  • 请求方法:GET
  • 接口地址:/api/now/access/table/{tableName}
  • 路径参数:
    • tableName:目标表的名称(如os_list、cmdb_ci_computer)
  • 查询参数(可选,用于检查指定用户而非当前认证用户):
    • sysparm_user:指定用户的sys_id或用户名,用于模拟该用户的权限检查

3. 解析响应结果

响应体中会返回该用户对目标表的各项权限状态,示例响应片段:

{
  "result": {
    "read": true,
    "write": false,
    "create": false,
    "delete": false,
    "import": false,
    "export": true
  }
}
  • 字段说明:
    • read:是否拥有读权限
    • write:是否拥有编辑权限
    • create:是否拥有新建权限
    • delete:是否拥有删除权限

二、验证指定用户对三个表的权限

注意:ServiceNow表名通常为小写格式,Core_manufacturer实际应为core_manufacturer,CMDB_cI_Computers实际应为cmdb_ci_computer,以下按规范表名操作:

1. 单表验证请求

分别调用三次API,替换tableName为对应表名,并添加sysparm_user参数指定目标用户:

  • 检查os_list:
    GET /api/now/access/table/os_list?sysparm_user=<目标用户sys_id或用户名>
    
  • 检查core_manufacturer:
    GET /api/now/access/table/core_manufacturer?sysparm_user=<目标用户sys_id或用户名>
    
  • 检查cmdb_ci_computer:
    GET /api/now/access/table/cmdb_ci_computer?sysparm_user=<目标用户sys_id或用户名>
    

2. 批量验证(可选)

如果需要减少网络请求次数,可使用批量请求API(/api/now/batch)打包三个请求:

{
  "batch": [
    {
      "method": "GET",
      "url": "/api/now/access/table/os_list?sysparm_user=<目标用户sys_id或用户名>"
    },
    {
      "method": "GET",
      "url": "/api/now/access/table/core_manufacturer?sysparm_user=<目标用户sys_id或用户名>"
    },
    {
      "method": "GET",
      "url": "/api/now/access/table/cmdb_ci_computer?sysparm_user=<目标用户sys_id或用户名>"
    }
  ]
}

3. 结果判断

以响应中read字段的true/false为基础,判断用户是否拥有对应表的基础访问权限;若需验证编辑、新建等权限,直接对应响应中的write、create等字段值即可。


内容的提问来源于stack exchange,提问作者user2745292

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:15:46