java - 如何使用 Azure Java SDK 从 Java 后端连接到 Azure Key Vault?
问题描述
遵循此文档:
我得到错误:
AADSTS900382:跨云请求中不支持机密客户端
请注意,这是使用政府云。
Java 应用程序是否必须托管在与 azure key vault 相同的云服务器上?因为这对我来说真的没有意义。
解决方案
关于这个问题,这是因为所有 SDK 默认都https://login.microsoftonline.com
用作 Azure Active Directory 授权主机。其他每个云都有不同的权限主机端点。所以我们需要在创建时更改权限主机DefaultAzureCredential
。
例如。我用sdkAzure Identity Version 1.1.0-beta.4
- 安装 SDK
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.1.0-beta.4</version>
</dependency>
</dependencies>
- 代码
/**
* the class `KnownAuthorityHosts` has the all cloud Azure Active Directory authority enpoint :
* https://docs.microsoft.com/en-us/java/api/com.azure.identity.knownauthorityhosts?view=azure-java-preview
*/
DefaultAzureCredential cred = new DefaultAzureCredentialBuilder().
authorityHost(KnownAuthorityHosts.AZURE_US_GOVERNMENT)
.build();
SecretClient client = new SecretClientBuilder()
.vaultUrl(<your-vault-url>)
.credential(cred )
.buildClient();
更多详情请参考文章
推荐阅读
- javascript - 如何使用数组将带有 id 的 PHP 表值链接到 javascript?
- ansible - ansible 与默认 remote_user 连接,即使我指定另一个
- google-cloud-platform - 在项目级别数据集强制执行 acl
- javascript - 使用角度删除firebase auth中的用户
- javascript - 在香草javascript中将月份名称转换为多种语言的数字
- java - setimage alapha 在 android 5.1 中不起作用
- tkinter - 如何在 Multilistbox 中隐藏一列
- reactjs - 从另一个文件夹导入反应组件
- android - Retrofit2 API 请求永远不会返回。为什么?
- javascript - “npm run build”失败并出现 SyntaxError:Unexpected token