Seq API:使用集成安全进行身份验证?

Seq API: Authenticating using Integrated Security?

在我的 Seq 实例上没有启用身份验证的情况下,我完全可以从 powershell 中使用它,也就是说,以下内容可以正常工作:

Invoke-RestMethod "https://myseqinstance/api/dashboards?shared"

但是,既然我已经启用了 Active Directory 身份验证并为自己添加了登录名,我仍然可以访问 Seq UI,但是调用 API 失败。

Invoke-RestMethod "https://myseqinstance/api/dashboards?shared" -UseDefaultCredentials

这现在会产生 HTTP 401 - 未经授权的错误。

我想我可能需要登录,所以我尝试了 HTTP GET 和 POST 以下

# Produces HTTP 403
Invoke-RestMethod "https://myseqinstance/api/users/login" -UseDefaultCredentials
# Produces HTTP 400
Invoke-RestMethod -Method Post "https://myseqinstance/api/users/login" -UseDefaultCredentials

所以两者都不起作用,即使集成安全性应该是可能的...... 如何使用集成安全性对 Seq API 进行身份验证?

这里的技巧是使用 API 键 - 您可以在 Seq UI 中通过单击您的用户名并选择 "API keys" 来执行此操作。

在 command-line 上,API 密钥令牌可以在 header:

中传递
$headers = @{
    'X-Seq-ApiKey' = '<token>'
}
Invoke-RestMethod -Uri "https://myseqinstance/api/dashboards?shared" -Method Get -Headers $headers

使用 seqcli command-line client, if the commands you need are in there. If not, Seq.Api(C# 中的客户端库)通常更方便,涵盖了完整的 API 并使许多自动化任务更容易。