我正在尝试通过 REST API 与我的 Ansible 自动化平台 (AAP) 实例进行交互。我们使用 SSO,因此根据这个答案,我通过 Web GUI 以用户身份登录并创建了个人令牌。我现在尝试对其调用 REST 请求,并收到与使用用户名/密码时相同的错误:
Invoke-RestMethod -Headers @{ Authorization = "Bearer $token" } -Method Get -Uri https://<ansible>/rest/v2/job_templates
{
"detail": "Authentication credentials were not provided. To establish a login session, visit /api/login/."
}
我还尝试了刷新令牌、base64 编码的令牌以及 base64 编码的用户名:密码,但都抛出相同的错误:
@{ Authorization = "Bearer $refresh_token" }
@{ Authorization = "Basic $base64_token" }
@{ Authorization = "Basic $base64_username_password" }
我需要创建会话令牌之类的东西吗?或者应该使用相同的令牌吗?
问题是 URL 末尾需要一个
/
。这有效:
Invoke-RestMethod -Headers @{ Authorization = "Bearer $token" } -Method Get -Uri https://<ansible>/rest/v2/job_templates/