Dev & Engineering ✓ Microsoft · Official dotnetazure-functionsentra-idauthentication-eventscustom-claimsotp-deliverytoken-enrichment

Entra Authentication Events for .NET

Customize Entra ID authentication flows with Azure Functions.

FollowSkills review · FSRS-2.0
Not recommended
43/ 100 5-point scale 2.2 / 5
Trust11 / 25 · 2.2/5

The document covers input validation, managed identity, error handling, and permission guidance, with no apparent malware or gross overreach; however, the external-API example uses an unauthenticated hard-coded URL, the OTP example handles plaintext codes and logs phone numbers, and it lacks data-flow disclosure, sensitive-data protections, confirmation, timeout, rollback, and dependency-security guidance, so points are deducted.

Reliability6 / 20 · 1.5/5

The document presents several event paths and some exception handling, but provides no skill-specific committed tests or reproducible build evidence; snippets omit some using directives and compatibility/deployment prerequisites, while external-data failures, empty responses, timeouts, and serialization errors are incompletely handled, warranting only limited static reliability.

Adaptability8 / 15 · 2.7/5

The audience, SDK, event types, and trigger terms are reasonably clear, covering token, attribute-collection, and OTP scenarios; however, non-fit boundaries, runtime-model differences, input/output contracts, regional reachability, and Chinese-language usage are not sufficiently documented, so trigger precision and environment-fit evidence remain limited.

Convention8 / 15 · 2.7/5

The SKILL.md has clear sections for installation, workflows, type reference, configuration, practices, error handling, related SDKs, licensing, and version metadata; however, metadata says 1.0.0 while the body calls package version 1.1.0 current, and there is no changelog, explicit maintenance owner, compatibility matrix, FAQ, complete dependency note, or known-limitations section, so points are deducted.

Effectiveness6 / 15 · 2.0/5

The examples cover the main authentication events and provide usable scaffolding for common code-generation tasks; however, OTP delivery is an empty stub, the external-data API is a placeholder, and there are no real tests, complete project files, deployment validation, or detailed configuration boundaries, leaving substantial manual review and therefore a deduction within the static cap.

Verifiability4 / 10 · 2.0/5

The document lists NuGet, Microsoft Learn, and GitHub references, while the repository context shows general CI, evaluation workflows, and harness tests; nevertheless, there is no skill-specific acceptance-criteria file, test suite, or third-party execution evidence, so key API and configuration claims cannot be independently reproduced from the supplied files and the static ceiling applies.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 9ccaf7c3704a
Before you use it
  • Do not copy the external-API example directly; add authentication, authorization, TLS, timeouts, retries, response validation, and secret management.
  • Avoid logging phone numbers, OTPs, or other sensitive authentication data, and define OTP lifetime, replay protection, rate limits, and failure recovery.
  • Before release, verify package version 1.1.0 against the selected Azure Functions .NET hosting model, type names, and Entra configuration requirements.
  • Replace the placeholder SendSmsAsync implementation, example.com endpoint, Graph permission, and API URI with validated implementations and least-privilege settings.
See the full review method →

What it does & when to use it

This skill is for .NET developers handling Microsoft Entra ID custom authentication events with Azure Functions. It covers token issuance, attribute collection, and custom one-time-password delivery. The included C# examples show event triggers, response actions, error handling, logging, and Function App configuration. It fits projects that need token enrichment or customized sign-up and verification flows, but it does not deploy or configure the complete Azure solution for you.

Shows how to install the Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents NuGet package and create Azure Functions triggered by WebJobsAuthenticationEventsTriggerAttribute. It covers OnTokenIssuanceStart, OnAttributeCollectionStart, OnAttributeCollectionSubmit, and OnOtpSend; reads user IDs, correlation IDs, submitted attributes, and OTP context; and produces claims, prefill values, block pages, validation errors, modified attributes, or OTP success/failure responses. It also demonstrates fetching claims from an external API, configuring Program.cs, host.json, and local.settings.json, and registering an API, custom authentication extension, and user-flow link in Entra ID.

  1. A .NET developer for an Entra ID sign-in flow needs to add department, role, or employee-number claims to issued tokens.
  2. A team building an external-identity sign-up flow needs to prefill, validate, or modify collected user attributes.
  3. A developer needs to reject registrations from selected email domains during attribute submission.
  4. A team needs to deliver one-time passwords through an SMS, email, or push-notification provider.
  5. An engineer maintaining an Azure Functions authentication extension needs examples for error handling, correlation logging, and Application Insights monitoring.

Pros & cons

Pros
  • Covers four core authentication event types with concrete C# examples.
  • Includes token enrichment, attribute validation, attribute modification, and custom OTP workflows.
  • Documents Entra ID setup, error handling, correlation logging, and performance practices.
  • The repository and skill are MIT licensed, and the skill metadata identifies Microsoft as author.
Limitations
  • Requires .NET, Azure Functions, and Entra ID configuration; it is not a standalone deployment solution.
  • External API access and OTP delivery providers in the examples must be implemented by the adopter.
  • The source provides no skill-specific test scenarios or platform compatibility results.
  • The stated current version is v1.1.0, but the source does not specify supported .NET target frameworks or numeric timeout limits.

How to install

Install the collection with npx skills add microsoft/skills, then select this skill in the wizard; skills are installed in the selected agent directory, such as .github/skills/ for GitHub Copilot. Alternatively, clone the repository and copy .github/plugins/azure-sdk-dotnet/skills/microsoft-azure-webjobs-extensions-authentication-events-dotnet/. Install the SDK in a .NET project with dotnet add package Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents.

How to use

Place the skill folder in your agent's skills directory and use a targeted request such as: Create an Azure Functions OnTokenIssuanceStart handler that adds department and employeeId claims to Entra ID tokens. Request the attribute-collection or OTP event pattern when needed. After deploying the Function App, register the API, create the Custom Authentication Extension, and link it to a User Flow in Entra ID. The source does not provide deployment commands.

Compared to similar skills

Microsoft.Identity.Web is described as a web-app authentication SDK, while Azure.Identity is for Azure authentication. This skill focuses on custom Entra ID authentication events hosted in Azure Functions.

FAQ

Does using this skill cost money?
The repository is MIT licensed. The source does not provide pricing information for Azure Functions, Entra ID, external APIs, or messaging providers.
Does it directly update Entra ID user profiles?
The examples modify submitted attribute values during the event flow, but the source does not show direct Microsoft Graph updates to user profiles.
What happens when a function fails?
The error-handling example logs the exception and returns an empty response so authentication continues without custom claims. It warns that throwing the exception would fail authentication.
Are an external API and messaging provider required?
No. The external API is an example source for claims, and the messaging provider is an example implementation for custom OTP delivery; both must be supplied by the project if used.

More skills from this repository

All from microsoft/agent-skills

Dev & Engineering ✓ Microsoft · Official

Azure Identity for Python

A practical skill for securing Python Azure applications with Microsoft Entra ID credentials.

Dev & Engineering ✓ Microsoft · Official

Azure Event Hubs Java Skill

Build production-oriented Java event streaming applications on Azure Event Hubs.

Dev & Engineering ✓ Microsoft · Official

Azure Tables for Python

A practical guide to building authenticated Azure Tables applications with Python entity CRUD, queries, and partition-scoped batch operations.

Dev & Engineering ✓ Microsoft · Official

Azure Identity for TypeScript

Configure secure, flexible Microsoft Entra ID authentication for TypeScript Azure applications.

Automation & Ops ✓ Microsoft · Official

Azure Reliability Advisor

Assess and improve reliability for Azure Functions and App Service.

Dev & Engineering ✓ Microsoft · Official

Azure Cloud Architect

Guides coding agents through production-grade Azure architecture design and review using Azure Architecture Center practices.

Dev & Engineering ✓ Microsoft · Official

Azure AI Text Analytics for Python

Guides Python developers through Azure-powered text analysis and NLP workflows.

Automation & Ops ✓ Microsoft · Official

Azure Resource Architecture Visualizer

Analyze Azure resource groups and turn their dependencies into detailed Mermaid architecture diagrams.

Dev & Engineering ✓ Microsoft · Official

Azure Maps for .NET

Build .NET location features for search, routing, maps, geolocation, and weather.

Dev & Engineering ✓ Microsoft · Official

Azure AI Vision Image Analysis

Guides Python coding agents in implementing Azure AI Vision image understanding.

Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Python

Guides secure, production-minded Blob Storage operations in Python.

Dev & Engineering ✓ Microsoft · Official

Azure Queue Storage for Python

Gives coding agents reliable Python patterns for secure Azure Queue Storage messaging and asynchronous task processing.

Automation & Ops ✓ Microsoft · Official

Azure AI Gateway Governance

Use Azure API Management to govern traffic across AI models, MCP tools, and agents.

Automation & Ops ✓ Microsoft · Official

AKS Automatic Readiness

Assess Kubernetes workloads for AKS Automatic compatibility and identify migration blockers before you switch.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB ARM for .NET

Provision and manage Azure Cosmos DB resources from .NET through ARM.

Dev & Engineering ✓ Microsoft · Official

Azure Playwright Workspace Manager

Provision and manage Microsoft Playwright Testing workspaces with .NET and Azure Resource Manager.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB for Python

A practical guide for building reliable Python applications on Azure Cosmos DB’s NoSQL API.

Dev & Engineering ✓ Microsoft · Official

Azure Key Vault SDK for Python

Gives Python coding agents practical guidance for securely managing Azure Key Vault secrets, keys, and certificates.

Dev & Engineering ✓ Microsoft · Official

Azure API Management for Python

Gives coding agents practical Python SDK patterns for managing Azure API Management services, APIs, products, subscriptions, and policies.

Dev & Engineering ✓ Microsoft · Official

Azure Monitor Query for Python

Generate Python code for querying Azure Monitor logs and metrics.

Related skills