private AADKeyCredential CreateAzureADKeyCredential(string keyCredentialPath) { AADKeyCredential keyCred; var certificate = CertHelper.CreateCertificate(new X500DistinguishedName("CN=CloudStack AzureAD KeyCredential"), "CloudStack AzureAD KeyCredential"); byte[] certData = certificate.Export(X509ContentType.Pfx); if (File.Exists(Path.Combine(keyCredentialPath, "CloudStackKeyCredential.pfx"))) File.Delete(Path.Combine(keyCredentialPath, "CloudStackKeyCredential.pfx")); File.WriteAllBytes(Path.Combine(keyCredentialPath, "CloudStackKeyCredential.pfx"), certData); keyCred = new AADKeyCredential(); keyCred.KeyId = Guid.NewGuid().ToString(); keyCred.Type = "AsymmetricX509Cert"; keyCred.Usage = "Verify"; keyCred.CustomKeyIdentifier = Convert.ToBase64String(certificate.GetCertHash()); keyCred.Value = Convert.ToBase64String(certificate.Export(X509ContentType.Cert)); return keyCred; }
private AADKeyCredential CreateAzureADKeyCredential(string keyCredentialPath) { AADKeyCredential keyCred; var certificate = CertHelper.CreateCertificate(new X500DistinguishedName("CN=CloudStack AzureAD KeyCredential"), "CloudStack AzureAD KeyCredential"); byte[] certData = certificate.Export(X509ContentType.Pfx); if(File.Exists(Path.Combine(keyCredentialPath, "CloudStackKeyCredential.pfx"))) File.Delete(Path.Combine(keyCredentialPath, "CloudStackKeyCredential.pfx")); File.WriteAllBytes(Path.Combine(keyCredentialPath, "CloudStackKeyCredential.pfx"), certData); keyCred = new AADKeyCredential(); keyCred.KeyId = Guid.NewGuid().ToString(); keyCred.Type = "AsymmetricX509Cert"; keyCred.Usage = "Verify"; keyCred.CustomKeyIdentifier = Convert.ToBase64String(certificate.GetCertHash()); keyCred.Value = Convert.ToBase64String(certificate.Export(X509ContentType.Cert)); return keyCred; }