我必须从 Azure Vault 检索 secret ,但我的应用程序使用 jdk 5。这是一个问题,因为 Microsoft 文档中使用和描述的 Azure 库至少需要 jdk 8,并且无法升级 jdk。
客户的架构师说我可以使用一些Vault api并使用bouncy caSTLe的tls api来实现这一点,但我不确定他在说什么。
这听起来太低级了。我正在寻求指导,一些多余的解释可以让我继续下去。如何使用 Java 5 获取 secret ?
最佳答案
正如架构师所说,您可以通过 Key Vault REST API 而不是 Azure 库从 Key Vault 检索 secret 。
GET https://{yourvault}.vault.azure.net/secrets?api-version=7.1
这个API用于列出指定 key 保管库中的 secret 。您可以通过this link从给定的 keystore 获取指定的 secret 。 .
<小时/>首先,通过 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}
我用 Postman 尝试了一下,效果很好。您可以使用httpclient通过java获取 secret 。
注意:
导航到 Azure 门户 > key 保管库 > your_key_vault > 访问策略 > 添加访问策略。在 secret 权限字段中,选择所需的权限,然后选择主体部分,选择您用于访问 secret 的应用程序。
关于java - 如何使用 java 5 从 azure Vault 检索 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63674755/