Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)
建置 Azure Functions 用於 Entra ID 驗證事件
使用 Azure Functions 實作 Microsoft Entra ID 的自訂驗證擴充功能。將自訂宣告新增至權杖、在註冊期間驗證使用者屬性,並透過自訂通道傳遞 OTP 驗證碼。
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)」。 建立函式以在權杖發行期間新增部門和員工 ID 宣告
預期結果:
產生 WebJobsTokenIssuanceStartResponse,其中包含具有部門和員工 ID 字典宣告的 WebJobsProvideClaimsForToken 動作,包括用於追蹤使用者 ID 和相互關聯 ID 的記錄。
正在使用「Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)」。 撰寫封鎖暫時性電子郵件網域的屬性收集驗證
預期結果:
產生 WebJobsAttributeCollectionSubmitResponse,其中包含網域驗證邏輯、用於封鎖網域的 WebJobsShowBlockPage 動作,以及用於有效提交(具有修剪過的顯示名稱)的 WebJobsModifyAttributeValues。
正在使用「Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents (.NET)」。 透過 SMS 實作 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 傳遞通道
使用自訂 SMS 提供者、電子郵件服務或推播通知取代預設的 Microsoft OTP 傳遞。為多因素驗證實作自訂格式、速率限制和傳遞追蹤。
試試這些提示
建立一個 Azure Function,在 Entra ID 登入期間將自訂宣告新增至權杖。包含部門、員工 ID 和成本中心的宣告。
撰寫 Azure Function 來驗證屬性收集提交內容。封鎖來自暫時性電子郵件網域的註冊,並確保顯示名稱至少 3 個字元。
建立權杖發行函式,從外部 API 擷取使用者角色並將其新增為宣告。包含 API 失敗的錯誤處理和快取邏輯。
使用 Twilio 實作 OTP 傳送事件處理常式以進行 SMS 傳遞。包含錯誤處理、記錄,以及成功和失敗案例的回應動作。
最佳實務
- 務必在處理前驗證要求資料 - 永遠不要信任 userId 或 OTP 值存在
- 擲回例外狀況以避免封鎖驗證流程,應改為傳回空的回應物件
- 記錄來自 AuthenticationContext 的相互關聯 ID,以針對失敗的驗證事件進行疑難排解
- 快取外部 API 回應以避免驗證事件處理常式逾時
避免
- 不要在驗證事件處理常式中擲回例外狀況 - 傳回空回應以允許驗證繼續進行
- 避免使用慢速的外部 API 呼叫封鎖主執行緒 - 使用非同步模式並實作快取
- 永遠不要硬編碼 API 金鑰或連接字串 - 使用 Azure Key Vault 或受控識別以確保安全存取