2017-04-21 109 views

回答

1

您應該考慮Key Vault是否適合您的方案。公鑰(本質上)不是機密數據,你不需要一個安全的地方來存儲它。您可以爲其使用通用存儲服務。

如果您仍然需要使用密鑰保管庫,則可以將其作爲祕密存儲。密鑰庫祕密是八位字節序列,每個字節的最大大小爲25k字節。

1

加載公鑰證書

Azure Key Vault Explorer可加載公鑰證書(.CER文件)。

證書使用該應用程序使用的「標準」格式作爲密鑰存儲在密鑰保管庫中(因爲.cer文件本質上不受Azure密鑰保管庫支持)。

Example public key cert as stored by Azure Key Vault Explorer

訪問公鑰證書

一旦你已經裝載公鑰到Azure的重點庫,他們就可以通過編程的方式如下訪問:

// load certificate based on format used by `Azure Key Vault Explorer` 
var azureServiceTokenProvider = new AzureServiceTokenProvider(); 
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback)); 
var certBundle = await kv.GetSecretAsync(secretIdentifier).ConfigureAwait(false); 

byte[] certBytes = null; 
if (certBundle.ContentType == "application/x-pkcs12") 
{ 
    certBytes = Convert.FromBase64String(certBundle.Value); 
} 
else if (certBundle.ContentType == "application/pkix-cert") 
{ 
    certBytes = certBundle?.Value.FromJson<PublicKeyCertificate>()?.Data; 
} 
if (certBytes != null && certBytes.Length > 0) 
{ 
    return new X509Certificate2(certBytes, 
     "", 
     X509KeyStorageFlags.Exportable | 
     X509KeyStorageFlags.MachineKeySet | 
     X509KeyStorageFlags.PersistKeySet); 
} 
return null; 

... 

// class used to access public key certificate stored in Key Vault 
public class PublicKeyCertificate 
{ 
    public byte[] Data; 
} 
相關問題