Seq API: аутентификация с использованием встроенной безопасности? - PullRequest
2 голосов
/ 26 февраля 2020

Без аутентификации, включенной в моем экземпляре 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, используя встроенную защиту?

1 Ответ

1 голос
/ 27 февраля 2020

Хитрость здесь в том, чтобы использовать ключ API - это можно сделать в пользовательском интерфейсе Seq, щелкнув свое имя пользователя и выбрав «Ключи API».

В командной строке токен ключа API может передается в заголовке:

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

Обычно гораздо удобнее использовать seqcli клиент командной строки , если там есть нужные вам команды. Если нет, то Seq.Api (клиентская библиотека в C#) охватывает полный API и упрощает многие задачи автоматизации.

...