Azure Identity TypeScript
为 TypeScript Azure 应用配置安全、可切换的 Microsoft Entra ID 身份验证。
文档明确建议使用托管身份、环境变量、适当凭据范围,并警告不要硬编码秘密;示例主要使用占位符,未发现窃取凭据、隐蔽外传或破坏性默认行为。扣分原因是缺少权限最小化、用户确认、令牌数据流、回滚和凭据泄露后的恢复说明,且详细日志示例可能增加敏感信息暴露风险。
安装、环境变量和多种凭据路径均有示例,异常处理也有部分说明;但文档存在明显自洽性不足,例如生产环境对DefaultAzureCredential与ManagedIdentityCredential的建议不一致,浏览器认证参考还混用Node选项,并且没有该技能专属测试或可复现验证。按静态校准扣分,无法证明关键路径可运行。
目标用户和主要场景(本地开发、Azure托管环境、CI/CD、Kubernetes、浏览器、主权云)较清晰,也覆盖Azure China。扣分原因是非适用边界、精确触发条件、版本适配和中国大陆网络可达性说明不足;部分外部登录与文档链接依赖海外服务。
目录结构清楚,主文档与两个参考文件分层,包含安装、示例、最佳实践、调试和安全注意事项;有MIT许可证、作者和1.0.0版本元数据。扣分原因是缺少技能专属变更记录、维护责任与更新流程、依赖版本约束、FAQ和系统化故障排查。
提供了多种可直接改写的TypeScript认证代码片段、环境变量模板、凭据选择和浏览器集成示例,能够覆盖核心认证配置任务。扣分原因是示例未经本次执行验证,且推荐项和API/浏览器说明存在潜在过时或矛盾内容,通常仍需人工核对和修改。
文档包含Microsoft Learn和aka.ms参考链接;仓库还提供通用CI、评估工作流和测试代码,说明存在一定审计基础。扣分原因是这些测试未证明覆盖本技能关键路径,且没有该技能专属测试结果或第三方执行证据;静态审查不能独立复现结论。
- 在采用示例前,应核对当前@azure/identity版本、DefaultAzureCredential凭据链、InteractiveBrowserCredential浏览器/Node适用性及WorkloadIdentityCredential配置。
- 不要启用详细日志记录真实令牌、客户端秘密或其他凭据;应补充最小权限、同意流程、秘密轮换和泄露恢复措施。
- 浏览器登录、Azure登录端点和外部文档的可达性及企业网络策略需单独验证。
它能做什么 & 适用场景
此技能面向使用 Azure SDK 的 TypeScript 和 JavaScript 开发者,提供基于 Microsoft Entra ID 的身份验证配置。它涵盖 DefaultAzureCredential、托管身份、服务主体、交互式登录、开发者凭据和自定义凭据链。内容还包括主权云、Bearer Token Provider、调试日志及凭据管理最佳实践。适合需要避免硬编码密钥并在本地开发与生产环境之间切换认证方式的项目。
指导安装 @azure/identity 及可选的 @azure/identity-vscode;配置服务主体密钥或证书、Kubernetes 工作负载身份和相关环境变量;生成 DefaultAzureCredential、ManagedIdentityCredential、ClientSecretCredential、ClientCertificateCredential、InteractiveBrowserCredential、DeviceCodeCredential 及 ChainedTokenCredential 示例;展示 Azure CLI、Azure Developer CLI、Azure PowerShell 和 Visual Studio Code 凭据用法;配置 Azure Government 或 Azure China 的 authorityHost;创建 Bearer Token Provider;定义 TokenCredential 自定义实现;通过 @azure/logger 设置详细日志和自定义日志处理器。
- 本地开发者需要使用 DefaultAzureCredential 连接 Blob Storage 等 Azure SDK 客户端时。
- 生产环境运行在 Azure 资源上,需要改用系统分配或用户分配托管身份时。
- Kubernetes 工作负载需要通过联邦令牌文件访问 Azure 时。
- 后端服务使用客户端密钥或客户端证书代表服务主体获取令牌时。
- 桌面或交互式应用需要浏览器登录或设备代码登录时。
- 应用需要在托管身份和 Azure CLI 凭据之间建立自定义回退链时。
优缺点一览
- 覆盖本地开发、生产部署、Kubernetes 和交互式登录等多种认证场景。
- 提供可直接改写的 TypeScript 代码和环境变量示例。
- 明确建议生产环境优先使用托管身份,并避免硬编码凭据。
- 包含主权云、Bearer Token Provider、自定义凭据链和调试日志配置。
- 内容主要是配置示例和最佳实践,没有提供该技能专属的测试套件或测试结果。
- 未说明 Node.js 版本、@azure/identity 版本或完整的运行时兼容矩阵。
- 身份权限、租户配置和 Azure 资源授权步骤未在技能正文中展开。
- 示例中的证书路径、租户 ID、客户端 ID 和密钥仍需使用者自行提供。
如何安装
安装整个技能集合:运行 npx skills add microsoft/skills,然后在向导中选择 azure-identity-ts。README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。源材料没有记录该技能的独立安装命令。运行项目代码前,按需安装 @azure/identity;需要 Visual Studio Code 凭据支持时再安装 @azure/identity-vscode。
如何使用
在 TypeScript 项目中先运行 npm install @azure/identity。向编码 Agent 提出例如:“请为这个 TypeScript Azure Blob Storage 客户端配置 DefaultAzureCredential,并分别说明本地开发、生产托管身份和必要的环境变量。”随后根据生成的示例设置 AZURE_TENANT_ID、AZURE_CLIENT_ID 等变量,或使用托管身份、CLI、浏览器等凭据实现。