第 10 章 在 API 中进行身份验证
您可以在 API 中使用以下验证方法:
自动化控制器专为机构设计,通过可视化仪表板来集中和控制其自动化,以进行开箱即用的控制,同时提供 REST API 以在更深入的级别上与其他工具集成。自动化控制器支持多种身份验证方法,可以轻松地将自动化控制器嵌入到现有工具和流程中。这可确保适当的人员可以访问其资源。
10.1. 使用会话身份验证 复制链接链接已复制到粘贴板!
在直接登录到自动化控制器的 API 或 UI 时,您可以使用会话身份验证来手动创建资源,如清单、项目和作业模板,并在浏览器中启动作业。使用这个方法,您可以长时间保持登录,而不仅仅是该 HTTP 请求。例如,当在浏览器中(如 Chrome 或 Mozilla Firefox)中浏览 API 或 UI 时。当用户登录时,会创建一个会话 Cookie,这意味着当导航到自动化控制器中的不同页面时,它们可以保持登录。下图代表会话中客户端和服务器之间发生的通信:
使用 curl 工具查看登录到自动化控制器时发生的活动。
流程
使用
GET进入/api/login/端点来获取csrftokencookie:curl -k -c - https://<gateway server name>/api/gateway/v1/login/ $YOUR_AAP_URL FALSE / TRUE 1780539778 csrftoken GODXonA5LyV1uAs8zvcD2k12DQJC74oB
$ curl -k -c - https://<gateway server name>/api/gateway/v1/login/ $YOUR_AAP_URL FALSE / TRUE 1780539778 csrftoken GODXonA5LyV1uAs8zvcD2k12DQJC74oBCopy to Clipboard Copied! Toggle word wrap Toggle overflow POST到/api/login/端点,用户名、密码和X-CSRFToken=<token-value>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
访问并测试需要身份验证的 API,如
/api/controller/v2/settings/all/:
curl -X GET -H 'Cookie: <cookieID>;' https://<gateway server name>/api/controller/v2/settings/all/ -k
$ curl -X GET -H 'Cookie: <cookieID>;' https://<gateway server name>/api/controller/v2/settings/all/ -k
当您在浏览器中登录到 UI 或 API 时,所有这些都由自动化控制器完成,且只能在浏览器中进行身份验证时使用它。有关与自动化控制器的编程集成,请参阅 OAuth2 令牌身份验证。
验证
下面显示了一个典型的响应:
当使用此方法成功验证用户时,服务器会使用名为 X-API-Session-Cookie-Name 的标头进行响应,指示会话 Cookie 的配置名称。默认值为 awx_session_id,稍后您可以在 Set-Cookie 标头中看到。
您可以通过在 SESSION_COOKIE_AGE 参数中指定会话过期时间来更改会话过期时间。