【问题标题】:Azure Key Vault Certificate Management using Java使用 Java 的 Azure Key Vault 证书管理
【发布时间】:2020-07-10 12:44:55
【问题描述】:

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

  1. DefaultAzureCredentialBuilder:创建证书的最基本形式,我必须在环境变量中导出clientId、clientSecret和tenantId,并创建一个证书客户端,如下所示:
  CertificateClient certificateClient = new CertificateClientBuilder()
                                   .vaultUrl("https://valueUrl.vault.azure.net")
                                  .credential(new DefaultAzureCredentialBuilder().build()).buildClient();
  1. ADAL:这是我更感兴趣的一个,因为我可以发送我的客户端 ID、机密和租户 ID 的详细信息,然后实例化证书客户端。我尝试使用它,但仍然没有成功。 sn-p如下:
     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 的官方文档中挑选出来的。

干杯

【问题讨论】:

    标签: java azure azure-active-directory azure-keyvault


    【解决方案1】:

    这可能是一个错误。我通过使用以下版本的 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>
    

    【讨论】:

    • 您好,感谢您的意见。我试着把它放进去。它不起作用。再次出现相同的错误。编辑:这通常在第一种情况或第二种情况下对您有用?
    猜你喜欢
    • 2018-09-11
    • 2020-01-27
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2021-11-07
    • 2021-04-25
    相关资源
    最近更新 更多