我必须从Azure Vault检索机密,但是我的应用程序使用jdk5。这是一个问题,因为Microsoft文档中使用和描述的azure库至少需要jdk 8,并且无法升级jdk。
客户的架构师说,我可以使用一些Vault API,并使用充气城堡的tls API来实现此目的,但是我不确定他在说什么。
这听起来太低了。我正在寻求指导,一些多余的解释可以帮助我前进。如何使用Java 5获取机密?
答案 0 :(得分:2)
正如架构师所说,您可以通过Key Vault REST API(而不是Azure库)从Key Vault中检索机密。
GET https://{yourvault}.vault.azure.net/secrets?api-version=7.1
此API用于列出指定密钥库中的机密。您可以通过this link从给定的密钥库中获取指定的机密。
首先,通过ApacheHttpClient
用Post
获取access_token。
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
client_id={your-client-id}
&scope=https%3A%2F%2Fvault.azure.net%2F.default
&client_secret={your-client-secret}
&grant_type=client_credentials
然后,通过ApacheHttpClient
用Get
调用REST API。
GET https://{yourvault}.vault.azure.net/secrets?api-version=7.1
Authorization: Bearer {access_token}
我和邮递员一起尝试了,效果很好。您可以使用httpclient通过Java获取机密。
注意:
导航到Azure门户>密钥库> your_key_vault>访问策略>添加访问策略。在机密权限字段中,选择所需的权限,然后在“选择主体”部分中,选择用于访问机密的应用程序。