【发布时间】:2017-10-10 00:41:00
【问题描述】:
我正在尝试设置一个 shell 脚本来从 Box 帐户中获取文件。为此,需要一个身份验证令牌。身份验证令牌必须通过脚本自动生成,因此不需要手动步骤。这可以通过构建和提交 JWT 声明来完成。
Box 的文档指定它们仅接受“RS256”、“RS384”和“RS512”。除了使用 Box 的文档和这个网站创建断言之外,我已经能够设置我需要的一切:
http://willhaley.com/blog/generate-jwt-with-bash/
我花了几个小时在网站上搜索,看看是否能找到任何关于如何使用 bash/shell 脚本生成断言的指示,但无济于事。我链接的网站是我找到的最接近的,但它使用的是 HS256,Box 不支持。
我的脚本目前与我之前链接的网站上的第一个脚本几乎相同(我有一个单独的脚本,用于测试使用手动生成的身份验证令牌实际抓取文件)。请帮助生成断言所需的命令。
【问题讨论】:
-
纯 bash?有什么理由不调用使用
python-jwt库的 Python 解释器? -
(并不是说它无法完成——openssl 确实通过命令行公开了 RSA 操作;让编写答案如此棘手的是需要测试它)。
-
@CharlesDuffy 是的,纯 bash。我有权配置单个 Jenkins 作业。我无权访问服务器或配置 Jenkins。可用的只是一个“Execute Shell”。
-
你意识到通过“执行shell”启动的shell可以调用
python -c 'python code here',对吧?仅仅因为某些东西是 from bash 运行的,并不意味着它不能调用任何东西但是 bash。如果你真正的限制是“不能安装任何软件”,那是可行的——但请不要把它变成不是它的东西。 -
@CharlesDuffy 是的,我意识到这一点,这就是为什么我说我无权访问服务器。我无法安装任何软件。