Share Feedback to help us keep improving.
10.3. OAuth 2 令牌身份验证
OAuth (Open Authorization)是基于令牌的身份验证和授权的公开标准。OAuth 2 身份验证通常用于以编程方式与自动化控制器 API 交互。
与基本身份验证类似,您可以通过 Authorization 标头为每个 API 请求提供一个 OAuth 2 令牌。与基本身份验证不同,OAuth 2 令牌有一个可配置的超时,并可范围。令牌具有可配置的过期时间,如果需要,可以为一个用户或管理员轻松撤销整个自动化控制器时间。您可以使用 revoke_oauth2_tokens 管理命令进行此操作,或使用 API 来完成此操作,如 Revoke a access token 所述。
在自动化控制器中获取 OAuth2 访问令牌的不同方法包括:
- 个人访问令牌(PAT)
- 应用程序令牌:密码授权类型
- 应用程序令牌:隐性授权类型
- 应用程序令牌:授权代码授权类型
用户需要在 API 或平台网关 UI 的
在本例中,使用 PAT 方法在 API 中创建令牌。创建后,您可以设置范围。
您可以在系统范围内配置令牌的过期时间。如需更多信息,请参阅使用 基于令牌的身份验证配置对外部应用程序的访问。
令牌身份验证最适合用于自动化控制器 API 的任何编程使用,如 Python 脚本或 curl 等工具。
curl 示例
curl -u user:password -k -X POST https://<platform-host>/api/gateway/v1/tokens/
此调用返回 JSON 数据,如下所示:
您可以使用 token 属性的值为自动化控制器资源执行 GET 请求,如 Hosts :
curl -k -X GET \
-H “Content-Type: application/json”
-H “Authorization: Bearer <oauth2-token-value>” \
https://<platform-host>/api/controller/v2/hosts/
您还可以通过向要启动的作业模板发布 POST 来运行作业:
curl -k -X POST \
-H "Authorization: Bearer <oauth2-token-value>" \
-H "Content-Type: application/json" \
--data '{"limit" : "ansible"}' \
https://<platform-host>/api/controller/v2/job_templates/14/launch/
10.3.1. 启用外部用户创建 OAuth 2 令牌 复制链接链接已复制到粘贴板!
默认情况下,通过单点登录创建的外部用户无法为安全目的生成 OAuth 令牌。
流程
-
在导航面板中,选择
。 - 选择 。
- 启用 选项,以允许外部用户创建 OAuth2 令牌。