Azure KeyVault-使用证书和证书私钥

Azure KeyVault-使用证书和证书私钥,azure,azure-keyvault,Azure,Azure Keyvault,我正在处理一个用例,在这个用例中我需要使用自签名证书,这些证书是我使用Azure Key Vault创建的 我的应用程序需要证书密钥和证书私钥进行身份验证 我想了解如何使用Azure KeyVault Java API获取这些值 另外,请告诉我如何获取Azure用户客户端id和客户端密钥?实际上,无需使用,您可以使用java SDK for keyvault来获取 package com.example.azure.keyvault; 导入com.microsoft.aad.adal4j.Aut

我正在处理一个用例,在这个用例中我需要使用自签名证书,这些证书是我使用Azure Key Vault创建的

我的应用程序需要证书密钥和证书私钥进行身份验证

我想了解如何使用Azure KeyVault Java API获取这些值


另外,请告诉我如何获取Azure用户客户端id和客户端密钥?

实际上,无需使用,您可以使用java SDK for keyvault来获取

package com.example.azure.keyvault;
导入com.microsoft.aad.adal4j.AuthenticationContext;
导入com.microsoft.aad.adal4j.AuthenticationResult;
导入com.microsoft.aad.adal4j.ClientCredential;
导入com.microsoft.azure.keyvault.authentication.KeyVaultCredentials;
导入java.util.concurrent.ExecutorService;
导入java.util.concurrent.Executors;
导入java.util.concurrent.Future;
/**
*基于Microsoft文档中的示例:
* https://azure.github.io/azure-sdk-for-java/com/microsoft/azure/keyvault/authentication/KeyVaultCredentials.html
*/
公共类ClientSecretKeyVaultCredential扩展了KeyVaultCredentials
{
私有字符串clientId;
私有字符串clientKey;
public ClientSecretKeyVaultCredential(字符串clientId,字符串clientKey){
this.clientId=clientId;
this.clientKey=clientKey;
}
@凌驾
公共字符串doAuthenticate(字符串授权、字符串资源、字符串范围){
AuthenticationResult token=getAccessTokenFromClientCredentials(
授权、资源、客户端ID、客户端密钥);
返回token.getAccessToken();
}
私有静态身份验证结果getAccessTokenFromClientCredentials(
字符串授权、字符串资源、字符串clientId、字符串clientKey){
AuthenticationContext上下文=null;
AuthenticationResult=null;
ExecutorService=null;
试一试{
服务=Executors.newFixedThreadPool(1);
上下文=新的AuthenticationContext(授权、错误、服务);
clientcredentials=newclientcredential(clientId,clientKey);
未来。示例是获取机密,只需使用最终获取证书的方法,而不是获取机密

注意:不要忘记在keyvault的
访问策略
中添加你的广告应用程序,否则你的应用程序将没有权限


除了,您还应该注意
客户端id
(即
应用程序id
)而
客户端密钥
是针对Azure广告应用程序的,而不是用户,它们都在示例文档中提到。或者,有关更多详细信息,您可以参考:和,您自己保存秘密。

嘿,Joy,谢谢您的回答。我将尝试此解决方案。嗨,Joy,您的回答真的很有帮助。谢谢!!@Avinash很高兴听到这个消息。