用于开发人员/企业的Box Python SDK:澄清JWT身份验证

时间:2018-02-10 02:54:24

标签: python box-api

https://github.com/box/box-python-sdk/blob/1b2d19662e904a2cc850dab2c66ee122c3b3e20e/README.rst#get-the-authorization-url州:

auth = JWTAuth(
     client_id='YOUR_CLIENT_ID',
     client_secret='YOUR_CLIENT_SECRET',
     enterprise_id='YOUR_ENTERPRISE_ID',
     jwt_key_id='YOUR_JWT_KEY_ID',
     rsa_private_key_file_sys_path='CERT.PEM',
     store_tokens=your_store_tokens_callback_method,
     )

前三个论点是不言自明的。

4:jwt_key_id:这是从哪里来的?这与JWT标题中的公钥ID是一样的吗?类似的问题(Authenticate with Box Developer Edition using box-python-sdk)没有列出这个论点。

5:我有私钥文件的路径;当我运行此脚本时,它返回一个错误,Password was not given but private key is encrypted.此处的社区答案https://community.box.com/t5/Box-Developer-Forum/Setting-password-for-private-key-when-using-JWTAuth-via-box/td-p/19407表明需要另一个参数,所以我添加了:    rsa_private_key_passphrase = 'my_passphrase'作为JWTAuth的另一个论点。这是对的吗?

6:store_tokens参数看起来是可选的,所以我假设我可以放store_tokens=None而没有小猫死,对吗?

1 个答案:

答案 0 :(得分:1)

4:您的正确性是jwt_key_id与应用程序配置设置中找到的8个字符公钥ID 相同。

5:对于rsa_private_key_file_sys_path,您必须输入 private_key.pem 文件的绝对路径。

6:是的,store_tokens不是强制性的,你可以删除它。而是将其替换为JWT身份验证所需的rsa_private_key_passphrase

重要提示: rsa_private_key_passphrase必须以字节为单位,因此请确保格式为rsa_private_key_passphrase = b'my_passphrase'

希望这能解决问题。