了解如何配置您的 ServiceNow 实例以支持 Databricks 数据引入。
选择身份验证方法
支持下列身份验证方法:
- U2M OAuth (建议)
- OAuth 资源所有者密码凭据 (ROPC)
Databricks 建议使用 U2M OAuth,因为它是更安全的方法。 但是,当身份验证令牌过期时,ServiceNow 连接将过期。 默认情况下,每隔 100 天发生一次。 若要降低频率,可以在 ServiceNow 中修改过期期限或使用 ROPC。
你将使用获得的身份验证详细信息来创建到 ServiceNow 的 Databricks Unity 目录连接。
授予用户权限
支持以下用于授予 ServiceNow 用户权限的选项:
| OAuth 范围 | Description |
|---|---|
| 管理员访问权限(建议) | 需要admin和snc_read_only角色。 |
| 最低特权访问 | 使用表级 ACL。 |
管理员访问权限(建议)
Databricks 建议使用此方法,因为它提供高效的架构发现。 必须具有以下权限:
- 若要捕获删除操作,ServiceNow 用户必须有权访问
sys_audit_delete table,并且引入的表必须跟踪删除操作(在 ServiceNow 中,表属性不能设置为no_audit_delete=true)。 - 在 ServiceNow 中,用户必须具备
admin角色。 - (可选)若要将管理员用户限制为只读访问权限,可以为其
snc_read_only分配角色。
最低特权访问
仅当限制权限比最大程度地减少 API 使用率更重要时,才选择此方法。 架构发现发生在每个管道运行中,而不仅仅是初始设置期间。 此方法需要以下 ACL 权限:
sys_dictionarysys_dictionary.*sys_db_objectsys_db_object.*sys_audit_deletesys_audit_delete.*sys_glide_objectsys_glide_object.*
创建 OAuth 应用程序
此步骤收集 ServiceNow 身份验证详细信息以进行 Databricks 引入。
重要
默认情况下,ServiceNow 需要 U2M OAuth 的多重身份验证(MFA)。 登录时,在标准 MFA 流中提供第二个身份验证方法。 此要求不适用于 ROPC 身份验证。
ServiceNow 管理员可以从 MFA 要求中免除对用户进行身份验证。 有关说明,请参阅 ServiceNow 文档中 的用户豁免 。
在“ 所有 ”菜单中,搜索 系统 OAuth,然后单击 “应用程序注册表”。
单击“新建”>“为外部客户端创建 OAuth API 终结点”。
输入应用程序的名称。
对于 身份验证范围,请输入
useraccount。(仅限 U2M OAuth)对于 重定向 URL,请输入
https://<databricks-workspace-url>/login/oauth/servicenow.html。 请将<databricks-workspace-url>替换为你的完整 Databricks 工作区 URL(例如https://adb-4385079616193792.12.azuredatabricks.net)。注释
如果使用 ROPC,请跳过此步骤。
单击 提交。
复制 客户端 ID 和 客户端密码。
获取实例 ID
实例 ID 是 ServiceNow 帐户登录 URL 的第一部分:
https://<instanceid>.service-now.com
例如,如果 ServiceNow 实例的主页是 https://abc.service-now.com,则实例 ID 为 abc。
获取用户名和密码
注释
此步骤仅适用于 ROPC 流。 Databricks 建议改用 U2M OAuth。
获取活动 ServiceNow 用户的用户名和密码。
对游标列启用索引编制
为了提高引入性能,Databricks 建议与 ServiceNow 管理员合作,以便在 ServiceNow 中的游标字段上启用索引。 根据可用性和首选项顺序,从以下列表中选择光标列: sys_updated_on (第一个选项)、 sys_created_on (第二个选项)、 sys_archived (第三个选项)。 这是在使用 ServiceNow API 进行引入时提高性能的标准方法。 设置索引允许 Databricks 避免对整个游标列进行完全扫描,这可能导致大型更新出现瓶颈。 有关说明,请参阅 ServiceNow 文档中 的“创建表索引 ”。