我尝试通过API http://localhost:63342/sampleproject/在Azure Key Vault中创建新密钥:
public Task<KeyBundle> CreateKeyAsync (
string vaultAddress,
string keyType,
KeyAttributes keyAttributes)
keyType
的文档是:
要创建的密钥类型(有效的WebKeyTypes之一)
我已经通过MSDN文档进行了搜索,但没有找到任何内容。 KeyVaultClient.CreateKeyAsync调用似乎不需要此参数??:
Parameter Set: Create
Add-AzureKeyVaultKey
[-VaultName] <String>
[-Name] <String>
-Destination <String> {HSM | Software}
[-Disable]
[-Expires <DateTime]> ]
[-KeyOps <String[]> ]
[-NotBefore <DateTime]> ]
[-Tags <System.Collections.Hashtable> ]
[ <CommonParameters>]
答案 0 :(得分:2)
查看Azure KeyVault SDK on Github
的源代码,我唯一能找到的是JsonWebKeyTypes
。根据源代码,这里是可能的值:
public const string EllipticCurve = "EC";
public const string Rsa = "RSA";
public const string RsaHsm = "RSA-HSM";
public const string Octet = "oct";
然而,在查看REST API documentation
时,我认为目前仅支持RSA
和RSA-HSM
。
答案 1 :(得分:1)
它实际记录在Key Vault MSDN page:
初始Azure Key Vault版本仅支持RSA密钥;未来 版本可能支持其他关键类型,如对称和椭圆 曲线。
- RSA:2048位RSA密钥。这是一个&#34;软&#34;密钥,由Key Vault在软件中处理,但使用系统以加密方式存储 HSM中的密钥。客户端可以导入现有的RSA密钥或 请求Azure Key Vault生成一个。
- RSA-HSM:在HSM中处理的RSA密钥。 RSA-HSM密钥在其中一个Azure Key Vault HSM安全世界中受到保护(有 每个地理位置的安全世界,以保持隔离)。客户可以 以软表单或从a导出RSA密钥 兼容的HSM设备,或请求Azure Key Vault生成一个。 此密钥类型将T属性添加到JWK获取以携带HSM 关键材料。
在撰写本文时,Key Vault不支持EC和oct键。
答案 2 :(得分:0)
在反汇编Microsoft.Azure.KeyVault.dll
之后,KeyType
想要的CreateKeyAsync
看起来像这样:
/// <summary>Supported JsonWebKey key types (kty)</summary>
public static class JsonWebKeyType
{
public const string EllipticCurve = "EC";
public const string Rsa = "RSA";
public const string RsaHsm = "RSA-HSM";
public const string Octet = "oct";
}
我尝试使用JsonWebKeyType.Octet
,现在我收到了一个新错误,但这是一个新问题。