十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Composio ServiceNow Toolkit 认证指南:Basic / OAuth2 / S2S OAuth2 的三阶段配置与实例绑定语义

Composio ServiceNow Toolkit 认证指南:Basic / OAuth2 / S2S OAuth2 的三阶段配置与实例绑定语义 Composio ServiceNow Toolkit 认证指南Basic / OAuth2 / S2S OAuth2 的三阶段配置与实例绑定语义【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composioServiceNow 是面向 IT、HR、客户服务与运营的企业级云平台其 toolkit 在 Composio 中提供了 171 个工具覆盖 incident、problem、change_request、CMDB、附件上传等能力。要在 AI Agent 中安全地调用这些工具关键是把认证链路搭对Composio 的servicenowtoolkit 支持Basic、OAuth2、S2S OAuth2三种认证方案且客户端凭证与实例子域名分属两个不同的收集阶段。本文基于 docs/kb/source/toolkits/servicenow/public.md 及仓库中的 toolkit 元数据完整讲解字段分布、方案选型、多租户隔离语义与 API 接入流程。ServiceNow 认证方案全景从仓库生成的 toolkit 元数据见 docs/public/data/toolkits.json可以看到servicenowtoolkit 的authSchemes明确声明了三种方案Auth Scheme配置名适用场景BASICservicenow_auth用户名 密码 实例名的 HTTP Basic 认证OAUTH2servicenow_oauth2委托式 OAuth 2.0用户登录并授权同意S2S_OAUTH2servicenow_s2s_oauth2服务器到服务器Service-to-ServiceOAuth身份与权限由 ServiceNow 管理员预配置这三种方案可同时存在于一个 toolkit 的认证配置中具体选择取决于你的集成场景面向终端用户的交互式场景用委托 OAuth2无人值守的后端集成用 S2S OAuth2简单的内部工具或低权限场景用 Basic。Composio 的 auth-config 概念 中认证方案auth scheme决定了用户如何完成认证而每个 toolkit 自身决定提供哪些方案。核心机制凭证与实例子域名分两阶段收集ServiceNow 认证配置最容易被忽略、也最影响表单设计的一点是所有必填字段并非一次性收集而是被拆成两个阶段——auth_config_creation创建认证配置时收集与connected_account_initiation创建连接账户时收集。auth_config_creation属于应用级凭证通常只配置一次属于该 toolkit 的全局认证蓝图。例如 OAuth2 的client_id、client_secret。connected_account_initiation属于实例/用户级信息在每次发起连接时按需收集。例如 ServiceNow 的实例子域名。这个拆分是有实际意义的同一份 OAuth 客户端凭证auth config可以被多个用户复用但每个用户连接到的 ServiceNow 实例子域名可能不同。因此在构建认证表单时必须区分两个阶段分别渲染必填项。三种方案的字段明细来自 toolkit 元数据以下是仓库toolkits.json中authConfigDetails记录的完整字段定义可直接作为表单与 SDK 参数设计的依据。OAUTH2servicenow_oauth2auth_config_creation创建 auth config 时字段显示名类型必填默认值说明client_idClient idstring是—ServiceNow 应用OAuth 客户端的 Client IDclient_secretClient secretstring是—对应的 Client Secretoauth_redirect_uriRedirect URIstring否https://backend.composio.dev/api/v1/auth-apps/add需加入应用 OAuth 允许列表的回调地址scopesScopesstring否useraccount向用户请求的权限范围逗号分隔connected_account_initiation发起连接时字段显示名类型必填说明subdomainInstance Subdomainstring是ServiceNow 实例子域名如mycompany对应mycompany.service-now.comS2S_OAUTH2servicenow_s2s_oauth2auth_config_creation字段显示名类型必填说明client_idClient IDstring是来自 ServiceNowSystem OAuth Application Registry的 OAuth 客户端 IDclient_secretClient Secretstring是同一注册项中的客户端密钥connected_account_initiation字段显示名类型必填说明subdomainInstance Subdomainstring是ServiceNow 实例子域名如mycompanyS2S 方案的凭证来源与委托 OAuth2 不同它取自 ServiceNow 实例内部的 OAuth Application Registry身份映射与权限由实例管理员预先配置不经过终端用户的交互式同意流程。BASICservicenow_authauth_config_creation无任何必填/可选字段——Basic 方案不需要应用级凭证所有信息都在连接时收集。connected_account_initiation字段显示名类型必填说明usernameUsernamestring是Basic 认证用户名passwordPasswordstring是Basic 认证密码subdomainInstance Namestring是ServiceNow 实例名实例绑定语义客户端不跨实例授权ServiceNow 的 OAuth 客户端是注册在某个具体实例内部的inbound OAuth client。因此有一条必须牢记的边界在一个客户实例中注册的 OAuth 客户端不会自动授权另一个无关实例。例如在mycompany.service-now.com里注册的客户端不能直接用于连接anotherco.service-now.com。这意味着单租户场景一套 auth config含一个客户端凭证 每个用户各自的实例子域名即可。多租户场景当不同客户提供不同的 ServiceNow 应用注册各自实例内的客户端时应当为每个客户创建独立的、客户自有customer-owned的 auth config而不是共享同一个 OAuth 客户端。否则后续客户将无法正确通过认证因为其请求会被 ServiceNow 实例侧拒绝。从实现角度看这也解释了为什么subdomain被放在connected_account_initiation它是每次连接层面的实例寻址信息而客户端凭证是每个应用/每个租户层面的注册信息两者生命周期不同、隔离边界不同。委托 OAuth2 与 S2S OAuth2 如何选择原文档给出了清晰的选型原则此处结合字段差异进一步展开委托 OAuth2delegated OAuth2适用于需要用户亲自登录并同意授权的场景。用户身份是发起操作的主体权限范围由用户授权决定Composio 在 OAuth 流程结束后保存并视配置刷新 access/refresh token。客户端凭证来自你或客户在 ServiceNow 实例中注册的应用。S2S OAuth2Service-to-Service适用于后端集成没有最终用户交互。集成的身份、可访问的表和操作权限全部由ServiceNow 管理员在 OAuth Application Registry 中预先配置好。你的服务以注册客户端的身份直接调用 ServiceNow API适合定时任务、自动化流水线等无人值守场景。简单判断标准需要用户在页面上点同意→ 委托 OAuth2希望以预置服务身份静默调用 → S2S OAuth2。动态获取 toolkit 元数据再构建表单由于auth_config_creation与connected_account_initiation的字段集合不同且不同认证方案BASIC / OAUTH2 / S2S_OAUTH2之间字段差异明显原文档明确建议在构建任何认证表单之前先动态获取当前 toolkit 的最新元数据。元数据来源即仓库中toolkits.json的authConfigDetails结构每条记录包含mode认证方案、name配置名以及分组的fields.auth_config_creation/fields.connected_account_initiation每个字段对象带name、displayName、type、description、required、default等属性。前端/后端表单生成器可据此按所选mode读取对应配置分别渲染两个阶段的必填与可选字段将required: true的字段纳入校验optional字段提供默认值预填如oauth_redirect_uri与scopes。这样即使 ServiceNow 侧将来调整字段表单逻辑也无需硬编码变更。接入流程从 Auth Config 到 Connected Account在 Composio 中auth config 是面向所有用户的认证蓝图定义认证方案、scope 与凭证用户基于它完成认证后生成 connected account其中保存 token 并与你的用户 ID 关联。对应 ServiceNow 的接入流程为创建 auth configOAuth2 / S2S_OAUTH2提交client_id、client_secretBasic 方案跳过此步得到带nanoid的配置。发起连接connected account initiation提交subdomainBasic 还需username、password。完成认证委托 OAuth2 走托管同意页与回调S2S 直接以服务身份换取访问凭证。调用工具用已连接账户执行 171 个 ServiceNow 动作如 SERVICENOW_CREATE_A_RECORD在 incident、problem、change_request 等表创建记录、SERVICENOW_ATTACH_FILE_TO_RECORD向记录附加文件等。API 层面auth config 的完整生命周期由/api/v3.1/auth_configs系列端点支撑POST创建、GET查询列表/按nanoid、PATCH更新、DELETE删除以及按状态启用/禁用请求头携带x-api-key。多租户场景下即为每个客户分别POST一个独立 auth config再各自发起连接。小结ServiceNow 认证配置的核心要点可概括为三条三种方案各司其职Basic 适合轻量场景委托 OAuth2 面向用户交互授权S2S OAuth2 面向管理员预配置的后端集成。字段分两阶段auth_config_creation收应用级凭证connected_account_initiation收实例子域名等连接级信息表单必须按阶段渲染。实例级隔离OAuth 客户端注册于单个实例内部、不跨实例授权多租户场景务必为每个客户创建独立的 customer-owned auth config。相关参考原始知识条目、衍生的 KB 指南页、ServiceNow toolkit 完整元数据含 171 个工具与三种认证方案的字段定义、Auth Config 概览 与 Auth Config API 参考。【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表