在Powershell(以及扩展名为.NET)中,可以使用默认的会话凭据通过各种命令进行身份验证。例如,关于Web请求,我可以通过Powershell执行以下操作:
# Make request using default session credentials
Invoke-WebRequest -UseDefaultCredentials https://privateapi.someserver.tld
有没有一种方法可以在Ruby中做类似的事情(也许借助gem),因此我可以将当前会话凭据用于Ruby上下文中的Web请求,而不是炮轰到Powershell中为了这?我想做的是拥有一个Chef库函数,该函数在chef-client
运行的编译阶段从REST API中获取信息,但是不希望用户通过属性和配方集提供其凭据。我想在此使用它,因为Chef Vault不是存储凭据的可行解决方案。
目前,我正在Ruby方面进行以下操作,但可以,但是希望将代码尽可能保留在Ruby中:
ps_json = `Powershell -ExecutionPolicy Bypass -Command "Invoke-RestMethod -UseBasicParsing -UseDefaultCredentials 'https://server.domain.tld/inventory?fqdn=#{node['name']}' | ConvertTo-Json -Depth 100`
resp_obj = JSON.parse ps_json