azure - 通过 Java SDK 使用 UsernamePasswordCredential 对 Azure AAD 进行身份验证
问题描述
我正在使用 azure java SDK,我需要对 azure AAD 进行身份验证,因为项目的业务需要通过 2 种方式进行身份验证:客户端密码和用户名密码。我已经与客户秘密合作过。通过用户名密码进行身份验证时,我遇到此错误:
com.microsoft.aad.msal4j.MsalInteractionRequiredException:AADSTS65001:用户或管理员未同意使用 ID 为“xxx”且名为“yyy”的应用程序。为此用户和资源发送交互式授权请求。我用谷歌搜索了这个问题,但找不到任何正确的解决方案来解决这个问题。有没有办法解决这个问题?或者我需要向该客户授予其他权限:
下面是我的示例代码。
public static void main(String[] args) {
SpringApplication.run(StorageApplication.class, args);
AzureResourceManager azure = AzureResourceManager
.authenticate(buildUsernamePasswordCredential(), buildAzureProfile()).withDefaultSubscription();
showContainers(azure);
}
public static UsernamePasswordCredential buildUsernamePasswordCredential() {
return new UsernamePasswordCredentialBuilder().clientId(YOUR_CLIENT_ID).tenantId(YOUR_TENANT_ID)
.username(YOUR_USERNAME).password(YOUR_PASSWORD).build();
}
public static AzureProfile buildAzureProfile() {
return new AzureProfile(AzureEnvironment.AZURE);
// return new AzureProfile(YOUR_TENANT_ID, YOUR_SUBSCRIPTION_ID, AzureEnvironment.AZURE);
}
public static void showContainers(AzureResourceManager azure) {
// TODO
}
以下是使用 rest API 时的错误 在 此处输入图像描述
解决方案
推荐阅读
- javascript - 使用 Javascript 如何访问 json 数组中的元素?
- meteor - 如何在 Laravel 网站中使用 Meteor 服务
- python - 将 DataFrame 与多索引列合并
- haskell - 为什么我们在haskell的递归函数中有堆栈溢出?
- excel - 仅当数字 3 在另一列中时才求和
- python - Python - xlabels 的空间
- android - 在android中只加载一次谷歌地图
- ios - UITabIeView CustomCell 在快速滚动之前无法正常工作......
- html - 是否有唯一的 CSS 解决方案:悬停在触摸屏上?
- powershell - 创建包含特定类型的所有文件及其文件大小的列表的文本文件