【问题标题】:Seq API: Authenticating using Integrated Security?Seq API:使用集成安全进行身份验证?
【发布时间】:2020-02-26 17:09:00
【问题描述】:

如果没有在我的 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 进行身份验证?

【问题讨论】:

    标签: c# powershell serilog getseq seq-logging


    【解决方案1】:

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

    在命令行中,API 密钥令牌可以在标头中传递:

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

    如果您需要的命令在其中,使用seqcli command-line client 通常会更方便。如果没有,Seq.Api(C# 中的客户端库)涵盖了完整的 API,并使许多自动化任务更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2017-06-18
      • 2013-05-10
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 2012-09-19
      相关资源
      最近更新 更多