ServiceNow `OAuth 2.0` 授权端点和令牌端点

ServiceNow `OAuth 2.0` authorization endpoint and token endpoint

我想使用 REST API 将我的应用程序与 ServiceNow 集成。为此,我的应用程序需要使用 OAuth 2 获得授权。我在 ServiceNow 的 wiki 中搜索了授权和令牌端点,但找不到任何内容。

任何人都可以 post 这些网址吗?

从 Fuji 版本开始,ServiceNow 支持使用 OAuth 对 REST 端点进行身份验证。首先,如果您尝试集成的 ServiceNow 实例上尚未启用 OAuth 插件,请务必启用它。有关如何执行此操作以及如何设置 OAuth 端点的信息,请查看这些产品文档。

在 ServiceNow 实例的应用程序注册表中创建 OAuth 端点后,您需要生成令牌以用于身份验证。您可以在产品 docs 中找到用于生成令牌的 curl 示例。查看对生成令牌的请求的响应并获取 'access token'。生成令牌的响应应包含类似于以下内容的 JSON 正文:

{"scope":"useraccount","token_type":"Bearer","expires_in":1800,"refresh_token":"w599voG89897rGVDmdp12WA681r9E5948c1CJTPi8g4HGc4NWaz62k6k1K0FMxHW40H8yOO3Hoe","access_token":"F0jh9korTyzd9kaZqZ0SzjKZuS3ut0i4P46Lc52m2JYHiLIcqzFAumpyxshU9mMQ13gJHtxD2fy"}

根据响应,您需要记录 'access_token' 并将其作为不记名令牌包含在对 ServiceNow REST API 端点的后续请求中。

使用访问令牌对 REST TableAPI 的示例请求:

curl -H "Accept:application/json" -H "Authorization:Bearer 2wRlsRCT2SYjCCJP91kwo2EFzj5qg4O3I3aC09e0-0hz6Ib3YK7If-LMiNorNuglfqbkL4AfkYC92KYHUCcbpQ" "http://<instance>.service-now.com/api/now/table/incident"

希望对您有所帮助!

似乎 ServiceNow 仅支持 passwordrefresh_token 授权类型。请参阅 here。授权和令牌 url 用于 Authorization code 授权类型。