我需要一个自动化的工作来对 Foreman 执行 REST API 调用,我宁愿不为它设置一个帐户——然后永远维护密码。
然而,Foreman 似乎只有“全有或全无”——如果任何事情都需要身份验证 ( :login: true
),那么一切都需要身份验证。
这真的是真的吗,还是外观具有欺骗性,可以告诉工头允许匿名查找和主机浏览,同时仍需要对任何更改进行身份验证?
我需要一个自动化的工作来对 Foreman 执行 REST API 调用,我宁愿不为它设置一个帐户——然后永远维护密码。
然而,Foreman 似乎只有“全有或全无”——如果任何事情都需要身份验证 ( :login: true
),那么一切都需要身份验证。
这真的是真的吗,还是外观具有欺骗性,可以告诉工头允许匿名查找和主机浏览,同时仍需要对任何更改进行身份验证?
好的,事实证明,Foreman 支持 OAuth1 类型的访问,这并不比简单的静态用户名/密码好多少(甚至任何)。更糟糕的是,除非您通过将此类访问映射到非特权帐户来采取特殊措施,否则使用 OAuth1 的连接将具有管理员权限。
访问 Foreman 安装的设置页面以打开映射和/或学习/设置 OAuth1“密钥”和“秘密”字符串。
虽然真实用户可能正在通过 LDAP(例如针对您的公司 Active Directory)或其他方式进行身份验证,但使用 OAuth1 的脚本可以永远使用相同的“密钥”和“秘密”值——它们甚至不会过期。
编辑:启用用户映射似乎根本不会提高安全性——可以指定任何现有的帐户名,并且不需要知道帐户的密码或任何其他机密。
因此,我用 Python 实现的简单 Foreman-search 脚本是(不支持分页——我的所有查询都返回不到 50 个条目):