Azure 通信服务 Java 身份认证
为 Azure Communication Services Java 应用提供令牌认证、刷新与通信用户标识处理指导。
文档明确要求不记录完整令牌、处理刷新失败并关闭凭据,且主要示例使用占位符;但令牌端点示例通过GET查询参数传递userId,未说明最小权限、用户确认、数据流边界、端点安全、依赖安全或恢复机制,因此扣分。
核心凭据、标识符和刷新模式结构基本一致,并提到重试和失败处理;但存在未定义方法、同步阻塞异步示例、缺少版本兼容性与技能专属测试,静态证据不足,按上限保守扣分。
触发短语、Java语言和ACS认证场景清晰;但未充分声明不适用场景、输入输出边界、API版本约束或异常输入行为,也未提供中文支持和中国大陆网络可达性说明,因此扣分。
具备YAML元数据、MIT许可、版本号、安装说明、分层示例和最佳实践;但缺少变更日志、明确维护责任与更新路径、FAQ、兼容矩阵和完整依赖说明,因此扣分。
内容覆盖静态令牌、刷新、Entra ID、标识符解析、缓存和释放,能为常见ACS Java编码任务提供直接参考;但多个示例依赖未展示的服务或方法,部分实现存在安全和工程完整性风险,未执行验证,故不超过静态上限并扣分。
技能文件和引用示例可审计,仓库提供通用CI与测试基础设施;但没有该技能的专属测试、真实执行结果或第三方交叉证据,结论主要基于静态文档,因此扣分。
- 不要将完整令牌写入日志或通过不安全的查询参数传输;应由服务端安全获取和刷新令牌。
- 在采用示例前核对azure-communication-common、azure-identity及相关ACS客户端的实际API和版本兼容性。
- 补充令牌刷新失败、无效标识符、端点配置错误和多租户隔离的可诊断处理与测试。
- 核心依赖Azure服务端点;文档未说明中国大陆网络可达性、区域限制或替代方案。
它能做什么 & 适用场景
此技能面向使用 Azure Communication Services Java SDK 的开发者,集中介绍共享认证工具和通信标识数据结构。它涵盖静态用户令牌、主动令牌刷新、异步令牌获取和 Entra ID 认证。内容还覆盖 ACS 用户、电话号码、Teams 用户及未知类型标识的创建、解析和类型判断。对于需要 Chat 或 Calling 等 ACS 服务认证基础的项目,它适合作为编码代理的参考;它不提供完整的具体业务服务 SDK 指南。
指导代理添加 Maven 依赖,创建 CommunicationTokenCredential,配置短期静态令牌或长期客户端的主动刷新,使用 EntraCommunicationTokenCredentialOptions 配置 Entra ID,并创建、解析、检查和读取多种 ACS 通信标识。它还展示令牌同步或异步访问、凭据关闭、云环境设置、环境变量和令牌安全实践。
- 使用 Java 构建 ACS Chat 或 Calling 客户端,并需要将用户访问令牌接入客户端凭据的开发者。
- 构建长期运行的 ACS 客户端,需要在令牌过期前通过回调主动刷新令牌的团队。
- 需要在 ACS 用户、PSTN 电话号码、Teams 用户和未知标识之间解析或分派通信对象的开发者。
- 为 Teams Phone Extensibility 配置 Entra ID、资源端点和作用域的 Java 开发者。
优缺点一览
- 覆盖 ACS 共享认证和标识符的主要 Java 类型。
- 同时提供静态令牌、主动刷新、异步获取和 Entra ID 示例。
- 包含令牌安全、凭据释放和具体标识符类型使用建议。
- 只聚焦共享认证工具和标识符,不涵盖 Chat、Calling 或 SMS 服务的完整 API。
- 示例中的令牌服务、客户端对象和 `fetchNewTokenFromServer()` 等应用代码需要自行实现。
- 源材料没有提供该单项技能的独立测试结果或平台兼容性验证。
如何安装
运行 npx skills add microsoft/skills,在向导中选择此技能。也可以克隆仓库后,将 .github/plugins/azure-sdk-java/skills/azure-communication-common-java/ 复制到所选 Agent 的技能目录;README 未说明该具体技能在每种 Agent 中的最终安装路径。项目依赖为 com.azure:azure-communication-common:1.4.0。
如何使用
在编码代理中提出例如:为 Java Azure Communication Services Chat 客户端配置 CommunicationTokenCredential,并使用主动令牌刷新。 代理可依据技能中的示例生成静态令牌、刷新回调、标识符解析、令牌访问或凭据关闭代码。