开发与工程 ✓ Microsoft · 官方 dotnetazure-functionsentra-idauthentication-eventscustom-claimsotp-deliverytoken-enrichment

Entra 身份验证事件 .NET 技能

用 Azure Functions 定制 Entra ID 身份验证流程。

FollowSkills 评估 · FSRS-2.0
不推荐
43/ 100 五分制 2.2 / 5
信任安全11 / 25 · 2.2/5

文档涵盖输入校验、托管身份、错误处理和相关权限提示,且未发现恶意行为或明显越权;但外部 API 示例使用未认证的硬编码 URL,OTP 示例处理明文验证码并记录电话号码,缺少数据流、敏感数据保护、用户确认、超时、回滚和依赖安全说明,因此扣分。

可靠稳定6 / 20 · 1.5/5

文档提供多个事件路径和异常处理示例,但没有针对该技能的提交测试或可复现构建证据;代码片段缺少部分 using、依赖版本兼容性和部署前提说明,外部数据失败、空响应、超时及序列化异常处理不足,因此仅达到静态审查下的有限可靠性。

适用触发8 / 15 · 2.7/5

目标用户、SDK、事件类型和触发关键词较明确,覆盖令牌、属性收集和 OTP 场景;但未充分声明不适用范围、运行模型差异、输入输出契约、地区网络可达性或中文使用注意事项,触发边界和环境适配证据有限,因此扣分。

规范维护8 / 15 · 2.7/5

SKILL.md 结构清晰,包含安装、工作流、类型参考、配置、最佳实践、错误处理、相关 SDK、许可证和版本元数据;但 metadata 版本为 1.0.0、正文称当前包为 1.1.0,缺少变更记录、维护责任、兼容矩阵、FAQ、完整依赖和已知限制说明,因此扣分。

有效结果6 / 15 · 2.0/5

示例覆盖主要认证事件,并能为常见代码生成任务提供可直接参考的骨架;但 OTP 发送函数是空实现,外部数据 API 是占位地址,缺少真实测试、完整项目文件、部署验证和关键配置边界,生成结果仍需较多人工核验,因此静态上限内扣分。

证据核验4 / 10 · 2.0/5

文档列出 NuGet、Microsoft Learn 和 GitHub 参考链接,仓库还提供通用 CI、评估工作流和测试工具;但没有该技能专属 acceptance criteria、测试套件或第三方执行结果,关键 API 和配置声明无法仅凭所给文件独立复现,因此不能超过静态证据上限。

证据充分度: 评估于 2026年7月20日 审查版本 9ccaf7c3704a
使用前请注意
  • 不要直接复制外部 API 示例;应加入认证、授权、TLS、超时、重试、响应校验和密钥管理。
  • 避免记录电话号码、OTP 或其他敏感认证数据,并明确 OTP 生命周期、重放防护、速率限制和失败恢复策略。
  • 发布前核对 Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents 1.1.0 与所选 Azure Functions .NET 运行模型、类型命名和 Entra 配置要求。
  • 将占位的 SendSmsAsync、example.com API、Graph 权限和 API URI 替换为经过验证的实现与最小权限配置。
查看完整评分方法 →

它能做什么 & 适用场景

该技能面向使用 .NET 和 Azure Functions 处理 Microsoft Entra ID 自定义身份验证事件的开发者。它涵盖令牌签发、属性收集和自定义 OTP 发送等事件。技能提供可直接参考的 C# 函数示例、响应操作、错误处理和 Function App 配置。适合需要令牌增强或自定义注册与验证流程的项目,但仍需要自行部署 Function App 并配置 Entra ID。

指导开发者安装 Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents NuGet 包,创建由 WebJobsAuthenticationEventsTriggerAttribute 触发的 Azure Functions,并处理 OnTokenIssuanceStart、OnAttributeCollectionStart、OnAttributeCollectionSubmit 和 OnOtpSend 事件。示例读取用户标识、关联 ID、提交属性及 OTP 数据,生成自定义 claims、预填属性、阻止页面、校验错误、修改属性或 OTP 成功/失败响应;也展示从外部 API 获取用户资料、配置 Program.cs、host.json 和 local.settings.json,以及在 Entra ID 中注册 API、创建自定义身份验证扩展并关联用户流。

  1. 负责 Entra ID 登录流程的 .NET 开发者,需要在令牌签发时加入部门、角色或员工编号等自定义 claims。
  2. 构建 B2C 或外部身份注册流程的团队,需要预填、校验或修改用户属性。
  3. 需要阻止特定邮箱域注册的开发者,希望在属性提交事件中返回阻止页面。
  4. 需要通过短信、电子邮件或推送渠道发送一次性密码的团队。
  5. 维护 Azure Functions 身份验证扩展的工程师,需要参考错误处理、日志记录和 Application Insights 监控做法。

优缺点一览

优点
  • 覆盖四类核心身份验证事件,并提供完整 C# 示例。
  • 包含令牌增强、属性校验、属性修改和自定义 OTP 等具体操作。
  • 说明 Entra ID 配置、错误处理、关联 ID 日志和性能实践。
  • MIT 许可,技能由 Microsoft 标注维护。
局限
  • 依赖 .NET、Azure Functions 和 Entra ID 配置,不能单独完成部署。
  • 外部数据访问和 OTP 发送示例中的 API 或短信提供商需要自行实现。
  • 来源没有提供该技能专属的测试场景或平台兼容性测试结果。
  • 当前版本信息为 v1.1.0,来源未说明支持的 .NET 目标框架或超时限制数值。

如何安装

安装整个技能集合:运行 npx skills add microsoft/skills,然后在向导中选择此技能;技能会安装到所选 Agent 的目录,例如 GitHub Copilot 的 .github/skills/。也可克隆仓库后复制 .github/plugins/azure-sdk-dotnet/skills/microsoft-azure-webjobs-extensions-authentication-events-dotnet/。在 .NET 项目中安装 SDK:dotnet add package Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents

如何使用

将技能文件放入 Agent 的技能目录,并在请求中明确说明目标,例如:为 Azure Functions 创建 OnTokenIssuanceStart 处理器,为 Entra ID 令牌添加 department 和 employeeId claims。根据需要请求属性收集或 OTP 事件实现。部署 Function App 后,按技能说明在 Entra ID 中注册 API、创建 Custom Authentication Extension 并链接到 User Flow。具体部署命令未在来源中提供。

对比同类

Microsoft.Identity.Web 用于 Web 应用身份验证,Azure.Identity 用于 Azure 身份验证;本技能专注于 Azure Functions 承载的 Entra ID 自定义身份验证事件。

常见问题

使用这个技能需要付费吗?
技能仓库采用 MIT 许可证。来源未提供 Azure Functions、Entra ID、外部 API 或短信服务的费用信息。
它能直接修改 Entra ID 的用户资料吗?
技能示例可在属性提交事件中修改提交值,但来源没有说明其直接调用 Microsoft Graph 修改用户资料。
函数发生异常时会怎样?
示例建议记录异常并返回空响应,使身份验证在不添加自定义 claims 的情况下继续;不要直接抛出异常,否则可能导致身份验证失败。
是否必须使用外部 API 或短信服务?
不是。外部 API 仅用于展示从外部系统获取 claims,短信服务仅用于自定义 OTP 示例,二者都需要项目自行实现。

同仓库的其他 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