Preciso de um trabalho automatizado para executar chamadas de API REST contra Foreman e prefiro não me incomodar em configurar uma conta para isso - e manter a senha para sempre.
No entanto, parece que Foreman tem apenas um "tudo ou nada" -- se a autenticação for necessária para qualquer coisa ( :login: true
), então será necessária para tudo .
Isso é realmente verdade ou a aparência engana e Foreman pode ser instruído a permitir pesquisas anônimas e navegação no host, embora ainda exija autenticação para quaisquer alterações ?
Ok, acontece que o Foreman oferece suporte ao tipo de acesso OAuth1, que não é muito (ou mesmo nenhum ) melhor do que simplesmente um nome de usuário/senha estático. Pior ainda, a menos que você tome medidas especiais mapeando esse acesso para uma conta sem privilégios, as conexões que usam OAuth1 terão privilégios de administrador.
Visite a página de configurações de sua instalação do Foreman para ativar o mapeamento e/ou aprender/definir as strings "chave" e "segredo" OAuth1.
Embora os usuários reais possam estar autenticando via LDAP (como em seu Active Directory corporativo) ou outros meios, o script de uso de OAuth1 pode usar os mesmos valores de "chave" e "secreto" para sempre - eles nem expiram.
Editar : habilitar o mapeamento de usuário não parece melhorar a segurança - qualquer nome de conta existente pode ser especificado e nenhum conhecimento da senha da conta ou de qualquer outro segredo é necessário.
Meu script simples de pesquisa Foreman implementado em Python é assim (sem suporte para paginação - todas as minhas consultas retornam bem menos de 50 entradas):