从azure python sdk JWK生成jwcrypto JWK

2024-05-16 20:14:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用azure-sdk从Azure密钥库获取密钥。这将返回一个KeyBundle,它有一个类型为azure.keyvault.v7_0.models.json_web_key_py3.JsonWebKey属性

对于代码的另一部分,我需要从jwcryptoJWK生成一个签名令牌。JWT.make_signed_token方法采用JsonWebKey。从Azure返回的JsonWebKey(我认为)实际上是同一个类,在不同的包中定义。在

有没有办法把Azure JWK变成jwcrypto JWK?我想可以一个接一个地转换所有属性,但我想知道是否有更优雅的方法。在

编辑:忘了包括版本。。。在

  • Windows 10
  • Python 3.6.5
  • jwcrypto 0.6.0
  • azure keyvault 1.1.0和azure管理keyvault 1.1.0

Tags: 方法json类型属性models密钥sdkazure
1条回答
网友
1楼 · 发布于 2024-05-16 20:14:49

{jwkan转换成jwkan对象的方法很简单。在

import jwcrypto.jwk as jwk

azureJwkObj = .... # your Azure JWK object
azureJwkDict = azureJwkObj.__dict__

jwcryptoJwkObject = jwk.JWK(**azureJwkDict)

下同。在

^{pr2}$

我认为有一个jwcrypto.jwk.JWK的函数import_key需要一个dict作为参数来生成一个jwcryptoJWK对象,在我查看了Azure KeyVault SDK和jwcryptoPython的源代码后。

根据azurekeyvaultsdk的源代码^{}和{}的{a2},我试图通过下面的代码生成一个{}JWK对象来查看其结构。在

from jwcrypto import jwk
key = jwk.JWK.generate(kty='oct', size=256)
print(key.__dict__)
# The output is {'_params': {'kty': 'oct'}, '_key': {'k': 'HJUk1CeudZ2Tur0fzHnOi-1U9UjxaUjClRW8TvqFakI'}, '_unknown': {}}

然后,我尝试使用下面的代码将Azure JWK对象转换为jwcrypto.jwk.JWK.import_key所需的dictory,以便通过import_key函数创建jwcryptoJWK对象。在

^{4}$

相关问题 更多 >