繁体   English   中英

使用 Java 的 Azure Key Vault 证书管理

[英]Azure Key Vault Certificate Management using Java

我的解决方案涉及使用 Java 在密钥库中创建证书。 以下是我尝试过但没有成功的方法。

  1. DefaultAzureCredentialBuilder :创建证书的最基本形式,其中我必须在环境变量中导出 clientId、clientSecret 和tenantId 并创建一个证书客户端,如下所示:
  CertificateClient certificateClient = new CertificateClientBuilder()
                                   .vaultUrl("https://valueUrl.vault.azure.net")
                                  .credential(new DefaultAzureCredentialBuilder().build()).buildClient();
  1. ADAL :这是我更感兴趣的一个,因为我可以发送我的客户端 ID、秘密和租户 ID 的详细信息,然后实例化证书客户端。 我尝试使用它,但仍然没有成功。 片段如下:
     ClientCertificateCredential certCreds = new ClientCertificateCredentialBuilder()
                        .clientId("clientId")
                        .pfxCertificate("C:\\MyCerft.pfx", "123")
                        .tenantId("tenantId").build();
     CertificateClient certificateClient1 = new CertificateClientBuilder()
                        .vaultUrl("https://vaultUrl.vault.azure.net/")
                        .credential(certCreds).buildClient();

样本来源如下:

但是上面两个都抛出了 credentialBuilder 类中签名不匹配的相同错误

com.azure.security.keyvault.certificates.CertificateClientBuilder"'s signer information does not match
signer information of other classes in the same package

以下是我的 pom 文件中的依赖项:

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-security-keyvault-certificates</artifactId>
  <version>4.0.0</version>
</dependency>    `

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-identity</artifactId>
  <version>1.0.4</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
</dependency>

我真的很想用第二种方式来做,因为这样更安全,让我做一些我必须在第一种情况下设置的配置设置。 但是,在这一点上,我什至会选择第一个,以防有结果。

另外,我不明白为什么对于第二种方式,微软没有将客户端机密作为参数提供,而是期望解决方案的证书(pfx/pem)进行身份验证。 因为,我相信 sdk 应该允许接受两种访问方式。

关于我在这里可能遗漏的任何建议都会有很大帮助,因为这是我直接从 Microsoft 的官方文档中选择的内容。

干杯

可能是BUG。 我使用以下版本的 SDK 解决了这个问题:

<!-- https://mvnrepository.com/artifact/com.azure/azure-identity -->
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.1.0-beta.2</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/com.azure/azure-security-keyvault-certificates -->
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-security-keyvault-certificates</artifactId>
    <version>4.1.0-beta.1</version>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM