开发与工程 ✓ Microsoft · 官方 rustazure-identityentra-idmanaged-identityservice-principalazure-sdkauthentication

Azure Rust 身份认证技能

为 Rust Azure SDK 客户端配置 Microsoft Entra ID 身份认证。

FollowSkills 评估 · FSRS-2.0
不推荐
45/ 100 五分制 2.3 / 5
信任安全13 / 25 · 2.6/5

文档限定使用官方 azure_* crates,建议避免硬编码凭据、使用环境变量并遵循 RBAC,降低了依赖和权限风险;但示例直接调试输出 secret.value,可能泄露敏感数据,且未说明用户确认、日志脱敏、最小权限细化或恢复策略,因此扣分。

可靠稳定7 / 20 · 1.8/5

安装命令、凭据类型和主要代码路径基本自洽,并使用 Rust 错误传播;但未固定版本、未提供针对关键路径的测试或静态可复现证据,示例依赖的 Key Vault service crate 也未列入安装命令,异常反馈主要是通用错误,因此受静态上限约束并扣分。

适用触发8 / 15 · 2.7/5

目标受众、场景、触发词和本地开发/生产区分较清楚,也明确指出不提供 DefaultAzureCredential;但非适用边界、输入输出契约、版本兼容范围及中文支持不足,Azure/CLI 可达性和中国大陆网络适配未说明,因此扣分。

规范维护8 / 15 · 2.7/5

结构包含元数据、安装、环境变量、认证示例、类型表、最佳实践和参考链接,且 MIT 许可与 Microsoft 署名清楚;但缺少版本策略、变更记录、明确维护责任/更新路径、FAQ 和故障排查,且示例依赖说明不完整,因此扣分。

有效结果5 / 15 · 1.7/5

内容可直接指导常见 Rust Azure 身份认证选择和基础代码编写,具有明显的手工查找节省价值;但关键示例完整性有限、依赖未全列、版本/API 正确性未通过文件内测试证据验证,仍需较多人工复核,因此按静态上限保守扣分。

证据核验4 / 10 · 2.0/5

提供 crates.io、docs.rs 和 Azure SDK 源码等可审计引用,并给出明确的官方 crate 约束;但本评估未执行,技能路径没有提交的专属测试、CI 覆盖或版本锁定证据,交叉 corroboration 有限,因此扣分。

证据充分度: 评估于 2026年7月20日 审查版本 9ccaf7c3704a
使用前请注意
  • 不要在生产代码或日志中输出 secret.value;应进行日志脱敏并使用最小 RBAC 权限。
  • 示例使用的 Key Vault service crate 未出现在安装命令中,且未固定 azure_identity/API 版本;实施前应核对对应版本文档并补齐依赖。
  • 文档未说明 Azure CLI、azd 和 Azure 服务在中国大陆网络环境下的可达性与替代方案。
查看完整评分方法 →

它能做什么 & 适用场景

该技能面向使用 Rust 开发 Azure 应用的开发者,指导通过官方 Azure Rust crate 为 Azure SDK 客户端配置身份认证。它涵盖本地开发、Azure 托管工作负载、服务主体、工作负载身份和 Azure CLI 等凭据类型。内容特别说明 Rust SDK 不提供 DefaultAzureCredential,应分别使用 DeveloperToolsCredential 或 ManagedIdentityCredential。技能还提供依赖安装、环境变量、凭据选择和客户端复用建议。

指导使用 cargo add 安装 azure_identity、azure_core 和 tokio;配置 AZURE_TENANT_ID、AZURE_CLIENT_ID 与 AZURE_CLIENT_SECRET;编写 DeveloperToolsCredential、ManagedIdentityCredential 和 ClientSecretCredential;使用 az login 或 azd auth login 完成本地登录;为多个 Azure 客户端克隆并复用凭据;根据目标服务分配 RBAC 角色。

  1. Rust 开发者需要在本地通过 Azure CLI 或 Azure Developer CLI 访问 Azure 服务时,使用 DeveloperToolsCredential。
  2. 在 VM、App Service、Functions 或 AKS 上运行 Rust 应用并需要托管身份时,使用 ManagedIdentityCredential。
  3. CI/CD 流水线或服务账户需要以客户端密钥进行服务主体认证时,使用 ClientSecretCredential。
  4. Kubernetes 工作负载需要联邦身份认证时,参考 WorkloadIdentityCredential。
  5. 应用需要为多个 Azure SDK 客户端共享认证状态时,按照技能建议克隆并复用凭据。

优缺点一览

优点
  • 覆盖本地开发、托管身份和服务主体等多种 Rust Azure 认证场景。
  • 明确区分 DeveloperToolsCredential 与 ManagedIdentityCredential,避免假设 Rust SDK 存在 DefaultAzureCredential。
  • 提供官方 crate 选择、环境变量、凭据复用和 RBAC 建议。
  • 包含可直接参考的 Key Vault SecretClient 示例和 Cargo 安装命令。
局限
  • 只聚焦 Azure 身份认证,不覆盖具体 Azure 服务客户端的完整使用方法。
  • 本资料未显示该技能专属的测试场景或测试结果。
  • 本地 DeveloperToolsCredential 依赖已登录的 Azure CLI 或 Azure Developer CLI;生产认证仍需正确配置 Azure 身份和权限。
  • 服务主体示例使用客户端密钥,技能要求通过环境变量提供,未给出证书认证示例。

如何安装

将整个集合安装到代理环境:npx skills add microsoft/skills,然后在安装向导中选择 azure-identity-rust。该技能位于 .github/plugins/azure-sdk-rust/skills/azure-identity-rust/SKILL.md。Rust 项目中执行:cargo add azure_identity azure_core tokio。若代码不直接使用 azure_core 类型,可不添加直接的 azure_core 依赖。

如何使用

可用触发词包括“azure identity rust”“DeveloperToolsCredential”“authentication rust”“managed identity rust”“credential rust”和“Entra ID rust”。本地开发先执行 az login 或 azd auth login,再使用 DeveloperToolsCredential::new(None)?;生产环境使用 ManagedIdentityCredential::new(None)?;服务主体认证使用 ClientSecretCredential::new(<tenant-id>, <client-id>, <client-secret>, None)?。仅使用 crates.io 的 azure-sdk 用户发布的 azure_* crate,不要使用已弃用的 azure_sdk_* crate 或社区 crate。

对比同类

相较于已弃用的 azure_sdk_* crate 和社区 crate,该技能要求使用 azure-sdk crates.io 用户发布的官方 azure_* crate。相较于其他 Azure SDK 语言中的 DefaultAzureCredential,Rust SDK 不提供同名的单一凭据类型;本地开发应使用 DeveloperToolsCredential,生产环境应使用 ManagedIdentityCredential。

常见问题

这个技能是否需要 Azure CLI?
只有使用 DeveloperToolsCredential 进行本地开发时需要 Azure CLI 或 Azure Developer CLI,并先执行 az login 或 azd auth login。托管身份和服务主体场景不依赖这一本地登录流程。
是否必须直接依赖 azure_core?
不一定。如果代码直接导入 azure_core::http::Url、RequestContent 或 error::ErrorKind 等类型,应添加直接依赖;仅使用服务 crate 的重新导出时可以省略。
可以使用 DefaultAzureCredential 吗?
不可以。该技能明确指出 Rust SDK 没有 DefaultAzureCredential,应根据场景使用 DeveloperToolsCredential 或 ManagedIdentityCredential。
如何避免凭据泄露?
不要硬编码凭据;服务主体信息应通过 AZURE_TENANT_ID、AZURE_CLIENT_ID 和 AZURE_CLIENT_SECRET 等环境变量提供,并为身份分配目标服务所需的 RBAC 角色。

同仓库的其他 Skills

均来自 microsoft/agent-skills

开发与工程 ✓ Microsoft · 官方

Azure Identity Python 认证技能

为 Python Azure 应用提供基于 Microsoft Entra ID 的可复用身份认证指导。

开发与工程 ✓ Microsoft · 官方

Azure Event Hubs Java 开发技能

帮助 Java 开发者构建高吞吐、可 checkpoint 的 Azure 事件流应用。

开发与工程 ✓ Microsoft · 官方

Azure Tables Python 技能

帮助 Python 开发者使用 Azure Tables 完成安全认证、实体管理、查询与批量事务操作。

开发与工程 ✓ Microsoft · 官方

Azure Identity TypeScript

为 TypeScript Azure 应用配置安全、可切换的 Microsoft Entra ID 身份验证。

自动化与运维 ✓ Microsoft · 官方

Azure 应用可靠性顾问

评估并提升 Azure Functions 与 App Service 的可靠性。

开发与工程 ✓ Microsoft · 官方

Azure 云架构师

帮助编码代理按照 Azure 架构中心最佳实践设计和审查生产级云系统。

开发与工程 ✓ Microsoft · 官方

Azure AI 文本分析 Python 技能

为 Python 开发者提供 Azure 文本分析与自然语言处理集成指导。

自动化与运维 ✓ Microsoft · 官方

Azure 资源架构可视化器

分析 Azure 资源组及其依赖关系,生成详细的 Mermaid 架构图。

开发与工程 ✓ Microsoft · 官方

Azure Maps .NET 开发技能

为 .NET 应用提供地理搜索、路线、地图、定位与天气开发指导。

开发与工程 ✓ Microsoft · 官方

Azure AI Vision 图像分析技能

为 Python 编码代理提供 Azure AI Vision 图像理解实现指南。

开发与工程 ✓ Microsoft · 官方

Azure Blob Storage Python 技能

帮助 Python 开发者安全高效地操作 Azure Blob Storage。

开发与工程 ✓ Microsoft · 官方

Azure Queue Storage Python 技能

帮助编码代理使用 Python 构建安全、可靠的 Azure Queue Storage 异步消息处理。

自动化与运维 ✓ Microsoft · 官方

Azure AI 网关治理

用 Azure API Management 统一治理 AI 模型、MCP 工具和智能体流量。

自动化与运维 ✓ Microsoft · 官方

AKS Automatic 就绪评估

评估 Kubernetes 工作负载能否迁移到 AKS Automatic,并定位兼容性阻塞项。

开发与工程 ✓ Microsoft · 官方

Azure Cosmos DB .NET 资源管理技能

用 .NET 通过 ARM 部署和管理 Azure Cosmos DB 资源。

开发与工程 ✓ Microsoft · 官方

Azure Playwright 工作区管理技能

用 .NET 通过 Azure Resource Manager 配置和管理 Microsoft Playwright Testing 工作区。

开发与工程 ✓ Microsoft · 官方

Azure Cosmos DB Python 技能

帮助 Python 开发者可靠地构建和操作 Azure Cosmos DB NoSQL 应用。

开发与工程 ✓ Microsoft · 官方

Azure Key Vault Python SDK 技能

帮助 Python 编码代理安全管理 Azure Key Vault 中的机密、加密密钥和证书。

开发与工程 ✓ Microsoft · 官方

Azure API Management Python 技能

帮助编码代理使用 Python SDK 管理 Azure API Management 的服务、API、产品、订阅与策略。

开发与工程 ✓ Microsoft · 官方

Azure Monitor 查询 Python 技能

帮助 Python 开发者查询 Azure Monitor 日志与指标。

相关 Skills