技能 Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)
🔐

Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)

安全

为 Entra ID 身份验证事件构建 Azure Functions

为 Microsoft Entra ID 实现自定义身份验证扩展。通过 Azure Functions 在令牌中添加自定义声明、在注册期间验证用户属性,并通过自定义渠道传递 OTP 代码。

支持: Claude Codex Code(CC)
🥉 72 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“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 操作。

安全审计

安全
v1 • 2/25/2026

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.

0
已扫描文件
0
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
74
规范符合性

你能构建什么

用于授权的令牌增强

在用户登录期间将部门、员工 ID 和角色等自定义声明添加到访问令牌中。在下游 API 中使用这些声明进行授权决策,无需额外的数据库查询。

自定义用户注册验证

在自助服务注册流程中验证用户属性提交。阻止来自某些电子邮件域的注册、强制执行密码复杂性,或在创建账户之前要求额外的验证步骤。

自定义 OTP 传递渠道

使用自定义短信提供商、电子邮件服务或推送通知替换默认的 Microsoft OTP 传递。为多因素身份验证实现自定义格式化、速率限制和传递跟踪。

试试这些提示

基本令牌声明函数
创建一个 Azure Function,在 Entra ID 登录期间向令牌添加自定义声明。包括 department、employeeId 和 costCenter 声明。
属性收集验证
编写 Azure Function 来验证属性收集提交。阻止来自临时电子邮件域的注册,并确保显示名称至少为 3 个字符。
外部数据令牌增强
创建一个令牌颁发函数,从外部 API 获取用户角色并将其添加为声明。包括 API 故障的错误处理和缓存逻辑。
使用 Twilio 集成的自定义 OTP
使用 Twilio 实现用于短信传递的 OTP 发送事件处理程序。包括错误处理、日志记录以及成功和失败场景的响应操作。

最佳实践

  • 在处理之前始终验证请求数据 - 切勿假设 userId 或 OTP 值一定存在
  • 返回空响应对象而不是抛出异常,以避免阻塞身份验证流程
  • 记录来自 AuthenticationContext 的相关性 ID,用于排查身份验证事件故障
  • 缓存外部 API 响应以避免身份验证事件处理程序超时

避免

  • 不要在身份验证事件处理程序中抛出异常 - 返回空响应以允许身份验证继续
  • 避免使用缓慢的外部 API 调用阻塞主线程 - 使用异步模式并实现缓存
  • 切勿硬编码 API 密钥或连接字符串 - 使用 Azure Key Vault 或托管标识进行安全访问

常见问题

如果我的身份验证事件函数抛出异常会发生什么?
身份验证流程可能会完全失败。始终将逻辑包装在 try-catch 块中,并在出错时返回空响应对象,以允许身份验证在没有自定义逻辑的情况下继续进行。
我可以在声明添加到令牌后修改它们吗?
不可以。声明只能在 OnTokenIssuanceStart 事件期间(在令牌颁发之前)添加。一旦颁发,令牌声明在下次身份验证事件之前是不可变的。
身份验证事件函数的超时限制是多少?
身份验证事件必须快速完成,通常在几秒钟内。长时间运行的操作(如数据库查询)应使用缓存或异步模式以避免超时。
我需要为自定义身份验证扩展注册 App Registration 吗?
是的。您必须在 Entra ID 中注册应用程序,公开具有正确范围(CustomAuthenticationExtension.Receive.Payload)的 API,并配置自定义身份验证扩展以指向您的 Function App URL。
我可以在进程内 Azure Functions 模型中使用此 SDK 吗?
所示示例适用于隔离工作进程模型。SDK 还支持进程内模型,但需要在 Startup 类中使用不同的初始化模式。
如何在本地测试身份验证事件函数?
使用 Azure Functions Core Tools 在本地运行,然后通过 HTTP 发送匹配 WebJobsTokenIssuanceStartRequest 或 WebJobsAttributeCollectionStartRequest 结构的示例 JSON 负载,或使用单元测试直接测试函数方法。