[Design] Support External Evaluation Policy (Invoke) in management SDKs
维护者通常 1 天内回复
评估
这个 Issue 还没有评估数据。
描述
Summary
Design support for Azure Policy External Evaluation ("Invoke") in Java management SDKs.
The SDK should handle the following flow:
- Detect
403 RequestDisallowedByPolicywithmissingPolicyTokenDetails. - Call
acquirePolicyTokenusing the original request URI, method, and payload. - Add the returned token to
x-ms-policy-external-evaluations. - Replay the original operation once.
Cross-language context and service clarifications are tracked in:
https://github.com/Azure/azure-sdk/issues/10081
An initial Java prototype is available at:
https://github.com/Azure/azure-sdk-for-java/pull/49701
Byte-for-byte payload requirement
For an operation with request-body byte sequence B, the following must use the same serialized bytes:
- The original ARM operation body.
acquirePolicyToken.operation.content.- The replayed ARM operation body.
Logical JSON equality is insufficient. Deserializing and reserializing the payload may change property ordering, whitespace, escaping, number formatting, null handling, or encoding and invalidate the token's content binding.
The implementation should retain the final serialized request content and reuse it without modification for token acquisition and replay. Bodyless operations such as DELETE should preserve the service-defined empty/null content behavior.
Design goals
- Work across management libraries without service-specific changes.
- Support PUT, PATCH, POST, and DELETE operations.
- Preserve the exact serialized request content without unnecessary overhead.
- Prevent recursive acquire/replay loops.
- Surface policy-evaluation and token-acquisition failures clearly.
- Define tracing, logging, and token-redaction behavior.
- Decide whether support is default-enabled or explicitly configured.
Expected outcome
Please propose the Java-specific architecture and public API, preferably with a prototype covering:
- successful
403 → acquirePolicyToken → replay; - verification that the original, token-acquisition, and replay payloads are byte-for-byte identical;
- prevention of payload reserialization;
- bodyless operations;
- token-acquisition failure or policy denial;
- replay-loop prevention;
- synchronous and asynchronous APIs;
- integration with the management client pipeline.
The prototype is for design validation and does not need to be production-ready.
- 主要语言
- Java
- 星标
- 2.6k
- 派生
- 2.2k
- 平均合并
- 2 天 1 小时
- 30 天内合并 PR
- 238
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Azure/azure-sdk-for-java 的其他 Issue
-
[Spring Cloud Azure] Improve Javadoc and startup guidance for allowed-group-names vs allowed-group-ids in AadAuthenticationProperties可能已有人在做 @himanchalkaushale 于 3 天前认领。 未关闭azure-spring azure-spring-aad Client
难度 2/5 1-3 小时 新手友好度 72/100
Azure/azure-sdk-for-java#51046 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
mgmt, in track 1 migration guide, call out that file-based authentication method is not recommended可能重新可做 关联的 PR 已关闭且未合并。 未关闭Azure.Identity
难度 1/5 1 小时以内 新手友好度 74/100
Azure/azure-sdk-for-java#48894 ·
维护者通常 1 天内回复
-
Client Cosmos customer-reported needs-team-attention question Service Attention
难度 3/5 1-2 天 新手友好度 42/100
Azure/azure-sdk-for-java#51084 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
[Search] Adopt TypeSpec-generated SSE APIs可能已有人在做 @XiaofeiCao 今天认领。 未关闭
Azure/azure-sdk-for-java#51080 · 1 个 reaction · 已指派 1 人 ·
维护者通常 1 天内回复
-
spring-cloud-azure-dependencies可能已有人在做 @domainname 于 1 天前认领。 未关闭azure-spring Client customer-reported needs-team-attention question
Azure/azure-sdk-for-java#51069 · 5 条评论 · 1 个 reaction · 已指派 3 人 ·
维护者通常 1 天内回复
查看 Azure/azure-sdk-for-java 的全部 Issue
相似的 Issue
-
bug
难度 1/5 1 小时以内 新手友好度 82/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
objectionary/lints#1640 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
openhab/openhab-addons#22168 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
wildfly/wildfly-channel#446 ·
-
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复