问题标签 [azure-sdk-for-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

azure-active-directory - 根据分配的 RBAC 列出 blob 和容器

使用 Spring Boot 2.5.x 构建的应用程序...使用最新的 Azure Java SDK (Azure BOM 3.9.0)。

使用 Spring Security 和 Azure Active Directory Spring Boot starter 进行 authN/authZ ......一切正常...... AZ 安全组和应用程序注册应用程序角色在 Spring Security 中正确映射为授予权限等。

存储 blob 容器已分配组 RBAC。

我们有一个要求,我们希望列出已授予 AD 用户写入权限的容器(贡献者角色)以及使用 ABAC 的容器下的虚拟文件夹(blob 前缀)。

所有用户都已阅读,但只有某些用户可以更新某些容器和/或 blob 文件夹中的 blob(例如容器/管理员)

使用 Azure blob 存储 SDK 列出容器和 blob,但在实现中看不到任何要按 RBAC 筛选的内容。

我想到的一些实现细节:

  • blob/容器索引标签;标记“管理员”相关的 blob 并在列表中使用标记过滤器。缺点是需要管理 blob 标签

  • blob/容器元数据;类似于标签,但没有索引;不确定是否直接通过 SDK 支持

  • 使用标签或元数据过滤从 SDK 调用返回的流集合

想法或想法赞赏!

0 投票
1 回答
131 浏览

azure-active-directory - 经常遇到“无法检索远程 JWK 集:读取超时”

我们在 Tomcat 9 上运行 Spring Boot 应用程序并尝试使用 Azure B2C 进行身份验证。我们在打电话

然后大概是 AAD 代码正在获取其其余依赖项。但是,我们经常看到验证 JWT 令牌的超时:

这看起来与这篇文章非常相似,但我仍然没有解决此问题的解决方案。

有没有人有什么建议?

  • 爪哇 11
  • 雄猫 9
  • 春天 5.3.8
  • 春季启动 2.5.7
  • 弹簧安全 5.5.4
  • Nimbus-Jose-JWT 9.10.1
0 投票
0 回答
20 浏览

azure - 创建虚拟机时通过 sdk 使用存储在 azure ui 中的 ssh 密钥

我在尝试使用带有 ssh 的 sdk 创建一个 azure vm 时遇到了一些困难。我将 ssh 公钥存储在我用来创建 vm 的同一订阅中的 azure 中。通过 ui 使用此存储的 ssh 密钥创建 vm 很容易,但是如何通过 sdk 传递公钥的位置?

我实际上想做:

但是我如何从 azure UI 中“获取”它?

0 投票
0 回答
27 浏览

java - Azure Java SDK - 如果出现 403 禁止错误,ChainedTokenCredential 不会切换到下一个可用的 TokenCredential

即使 ChainedTokenCredential 允许按顺序尝试多个 TokenCredential 实现,直到其中一个 getToken 方法返回访问令牌,但它只能处理身份验证错误而不能处理授权,即,它将抛出 403 错误并且不会自动切换到其他可用的身份验证,如果未定义 RBAC 权限。如果系统分配的托管身份没有 RBAC 权限,ChainedTokenCredential 不会从系统分配的托管身份切换到用户分配的托管身份

下面是神器细节

0 投票
1 回答
33 浏览

java - Azure Java SDK - 如何检索用户的 RBAC 角色

我们需要在执行业务逻辑之前检查用户的授权权限。我找不到使用 Azure Java SDK 检索用户角色的示例或教程。

0 投票
0 回答
8 浏览

java - 地址已用于对 localhost /MSI/token 上的 IDENTITY_ENDPOINT 的并发 getToken 调用

我们有一个 Java/spring boot webapp 部署到一个 azure 应用服务,并且多个用户线程正在尝试从单例服务 bean 并发访问 localhost 上的 getToken IDENTITY_ENDPOINT。

我们看到:java.net.BindException: Address already in use: connect

对于如何解决这个问题,有任何的建议吗?最初的想法是 Java.net httpclient 需要自定义配置还是可以缓存调用?

0 投票
1 回答
32 浏览

azure - 使用 Java sdk 在 azure blob 存储中上传文件时强制执行 TLS 1.2

用于 Azure Blob 存储的 Java SDK 使用 NFS,但我们希望在使用 blobclient 上传文件时使用 TLS 1.2。虽然帐户中的最低设置设置为 TLS 1.2,但客户端如何使用 TLS 1.2 从其应用程序上传文件?

0 投票
0 回答
29 浏览

java - 从 azure 服务总线队列中产生了多个 pod 来消费,但实际上只有一个或两个消费

我有多个用 java 编写的消费服务实例(或 pod)。当我在 azure 服务总线消息队列上有多个消息时,拥有多个 pod 的目的是能够并行使用多个消息。但似乎只有一两个 pod 正在使用这些消息。我无法理解原因。我是否缺少一些控制它的配置?

PS。我们的目的是根据队列中的消息数量运行 0-N 个 Pod。例如,如果队列中有 4 条消息,我们会自动扩展到 4 个 pod,目的是每个 pod 处理 1 条消息,然后并行处理 4 条消息。但是,出现的第一个 pod 似乎接收了 3 条消息并连续处理它们,而第 2 个 pod 处理了第 4 条消息。第 3 和第 4 个吊舱已启动并运行,但实际上并没有做任何事情。

因此,如果平均消息处理时间是 10 分钟,我们最终需要 30 分钟来处理 4 条消息,而不是 10 分钟

这是我们正在使用的代码:

为了进一步解释这一点,我使用上面的代码创建了一个简单的应用程序,并且 processMessage 的睡眠时间为 30 秒。所以现在,我在队列中有 4 条消息和 4 个实例运行,且 processorClient 已初始化但尚未启动。我现在在每个实例上以 5 秒的间隔触发 processorClient 的启动。

  • 实例 1 接收到第 1、2、3 条消息
  • 实例 2 收到第 4 条消息
  • 实例 3 没有收到任何消息
  • 实例 4 没有收到任何消息

为什么实例 1 收到 3 条消息?如何强制每个实例一次只接收 1 条消息?