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 并使许多自动化任务更容易。
在我的 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 并使许多自动化任务更容易。