Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)
为 Entra ID 身份验证事件构建 Azure Functions
为 Microsoft Entra ID 实现自定义身份验证扩展。通过 Azure Functions 在令牌中添加自定义声明、在注册期间验证用户属性,并通过自定义渠道传递 OTP 代码。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)”。 创建一个函数,在令牌颁发期间添加 department 和 employeeId 声明
预期结果:
生成的 WebJobsTokenIssuanceStartResponse 包含 WebJobsProvideClaimsForToken 操作,其中包含 department 和 employeeId 字典声明,包括用于用户 ID 和相关性 ID 跟踪的日志记录。
正在使用“Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)”。 编写阻止临时电子邮件域的属性收集验证
预期结果:
生成的 WebJobsAttributeCollectionSubmitResponse 包含域验证逻辑、用于被阻止域的 WebJobsShowBlockPage 操作,以及用于有效提交的 WebJobsModifyAttributeValues(带有修剪后的显示名称)。
正在使用“Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)”。 实现通过短信的 OTP 传递
预期结果:
生成的 WebJobsOnOtpSendResponse 包含 SendSmsAsync 集成、成功传递时的 WebJobsOnOtpSendSuccess 操作,以及异常情况下包含错误详情的 WebJobsOnOtpSendFailed 操作。
安全审计
安全Prompt-only documentation skill for Microsoft Azure WebJobs Authentication Events SDK. No executable code detected. Static analysis scanned 0 files with 0 security findings. This skill provides reference documentation and code examples for implementing Azure Functions triggers for Entra ID authentication events including token issuance, attribute collection, and OTP delivery. Safe to publish as educational content.
质量评分
你能构建什么
用于授权的令牌增强
在用户登录期间将部门、员工 ID 和角色等自定义声明添加到访问令牌中。在下游 API 中使用这些声明进行授权决策,无需额外的数据库查询。
自定义用户注册验证
在自助服务注册流程中验证用户属性提交。阻止来自某些电子邮件域的注册、强制执行密码复杂性,或在创建账户之前要求额外的验证步骤。
自定义 OTP 传递渠道
使用自定义短信提供商、电子邮件服务或推送通知替换默认的 Microsoft OTP 传递。为多因素身份验证实现自定义格式化、速率限制和传递跟踪。
试试这些提示
创建一个 Azure Function,在 Entra ID 登录期间向令牌添加自定义声明。包括 department、employeeId 和 costCenter 声明。
编写 Azure Function 来验证属性收集提交。阻止来自临时电子邮件域的注册,并确保显示名称至少为 3 个字符。
创建一个令牌颁发函数,从外部 API 获取用户角色并将其添加为声明。包括 API 故障的错误处理和缓存逻辑。
使用 Twilio 实现用于短信传递的 OTP 发送事件处理程序。包括错误处理、日志记录以及成功和失败场景的响应操作。
最佳实践
- 在处理之前始终验证请求数据 - 切勿假设 userId 或 OTP 值一定存在
- 返回空响应对象而不是抛出异常,以避免阻塞身份验证流程
- 记录来自 AuthenticationContext 的相关性 ID,用于排查身份验证事件故障
- 缓存外部 API 响应以避免身份验证事件处理程序超时
避免
- 不要在身份验证事件处理程序中抛出异常 - 返回空响应以允许身份验证继续
- 避免使用缓慢的外部 API 调用阻塞主线程 - 使用异步模式并实现缓存
- 切勿硬编码 API 密钥或连接字符串 - 使用 Azure Key Vault 或托管标识进行安全访问