# Entra App Registration > Guía el registro de aplicaciones en Microsoft Entra ID, la autenticación OAuth 2.0 y la integración con MSAL: permisos de API, service principals y ejemplos de autenticación. Fuente: https://skillsagentes.com/skills/microsoft/azure-skills/entra-app-registration Markdown: https://skillsagentes.com/skills/microsoft/azure-skills/entra-app-registration.md Repositorio: https://github.com/microsoft/azure-skills Autor: microsoft Licencia: MIT Actualizado: hace 2 meses Coste de contexto: 106 tok instalada, 2.1k tok al activarse, 20.8k tok con todos los archivos del bundle Bundle: 17 archivos, 81 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add microsoft/azure-skills --skill entra-app-registration --agent claude-code # Cursor npx -y skills add microsoft/azure-skills --skill entra-app-registration --agent cursor # Codex npx -y skills add microsoft/azure-skills --skill entra-app-registration --agent codex # Gemini CLI npx -y skills add microsoft/azure-skills --skill entra-app-registration --agent gemini # Windsurf npx -y skills add microsoft/azure-skills --skill entra-app-registration --agent windsurf # Cline npx -y skills add microsoft/azure-skills --skill entra-app-registration --agent cline ``` ## Qué hace - Guía el registro de aplicaciones en Microsoft Entra ID, la autenticación OAuth 2.0 y la integración con MSAL. - Explica los conceptos clave: registro de aplicación, Application (Client) ID, Tenant ID, client secret y redirect URI. - Cubre la configuración de permisos de API y la generación de service principals. - Incluye ejemplos de MSAL, entre ellos autenticación desde una aplicación de consola. ## Cuándo usarla - Se quiere crear un registro de aplicación o registrar una app de Azure AD. - Se quiere configurar OAuth, montar autenticación o añadir permisos de API. ## Cuándo no - Para secretos de Key Vault, que van a la auditoría de caducidad de Key Vault. - Para guía general de seguridad de recursos de Azure. ## Qué la activa - "registra una app en Entra ID" - "configura OAuth para esta app" - "añade permisos de API" - "dame un ejemplo con MSAL" ## Antes de instalar - Trabaja sobre Microsoft Entra ID, antes conocido como Azure Active Directory. ## Archivos - SKILL.md — 8 KB - references/BICEP-EXAMPLE.bicep — 5 KB - references/api-permissions.md — 10 KB - references/auth-best-practices.md — 6 KB - references/cli-commands.md — 9 KB - references/console-app-example.md — 11 KB - references/first-app-registration.md — 7 KB - references/oauth-flows.md — 9 KB - references/sdk/azure-identity-dotnet.md — 940 B - references/sdk/azure-identity-java.md — 1 KB - references/sdk/azure-identity-py.md — 1 KB - references/sdk/azure-identity-rust.md — 805 B - references/sdk/azure-identity-ts.md — 1 KB - references/sdk/azure-keyvault-py.md — 1 KB - references/sdk/azure-keyvault-secrets-ts.md — 1 KB - references/sdk/microsoft-azure-webjobs-extensions-authentication-events-dotnet.md — 1 KB - references/troubleshooting.md — 7 KB ## SKILL.md Reproducido tal cual desde microsoft/azure-skills bajo MIT. Esta sección es el documento original y está en inglés. ## Overview Microsoft Entra ID (formerly Azure Active Directory) is Microsoft's cloud-based identity and access management service. App registrations allow applications to authenticate users and access Azure resources securely. ### Key Concepts | Concept | Description | |---------|-------------| | **App Registration** | Configuration that allows an app to use Microsoft identity platform | | **Application (Client) ID** | Unique identifier for your application | | **Tenant ID** | Unique identifier for your Azure AD tenant/directory | | **Client Secret** | Password for the application (confidential clients only) | | **Redirect URI** | URL where authentication responses are sent | | **API Permissions** | Access scopes your app requests | | **Service Principal** | Identity created in your tenant when you register an app | ### Application Types | Type | Use Case | |------|----------| | **Web Application** | Server-side apps, APIs | | **Single Page App (SPA)** | JavaScript/React/Angular apps | | **Mobile/Native App** | Desktop, mobile apps | | **Daemon/Service** | Background services, APIs | ## Core Workflow ### Step 1: Register the Application Create an app registration in the Azure portal or using Azure CLI. **Portal Method:** 1. Navigate to Azure Portal → Microsoft Entra ID → App registrations 2. Click "New registration" 3. Provide name, supported account types, and redirect URI 4. Click "Register" **CLI Method:** See [references/cli-commands.md](references/cli-commands.md) **IaC Method:** See [references/BICEP-EXAMPLE.bicep](references/BICEP-EXAMPLE.bicep) It's highly recommended to use the IaC to manage Entra app registration if you already use IaC in your project, need a scalable solution for managing lots of app registrations or need fine-grained audit history of the configuration changes. ### Step 2: Configure Authentication Set up authentication settings based on your application type. - **Web Apps**: Add redirect URIs, enable ID tokens if needed - **SPAs**: Add redirect URIs, enable implicit grant flow if necessary - **Mobile/Desktop**: Use `http://localhost` or custom URI scheme - **Services**: No redirect URI needed for client credentials flow ### Step 3: Configure API Permissions Grant your application permission to access Microsoft APIs or your own APIs. **Common Microsoft Graph Permissions:** - `User.Read` - Read user profile - `User.ReadWrite.All` - Read and write all users - `Directory.Read.All` - Read directory data - `Mail.Send` - Send mail as a user **Details:** See [references/api-permissions.md](references/api-permissions.md) ### Step 4: Create Client Credentials (if needed) For confidential client applications (web apps, services), create a client secret, certificate or federated identity credential. **Client Secret:** - Navigate to "Certificates & secrets" - Create new client secret - Copy the value immediately (only shown once) - Store securely (Key Vault recommended) **Certificate:** For production environments, use certificates instead of secrets for enhanced security. Upload certificate via "Certificates & secrets" section. **Federated Identity Credential:** For dynamically authenticating the confidential client to Entra platform. ### Step 5: Implement OAuth Flow Integrate the OAuth flow into your application code. **See:** - [references/oauth-flows.md](references/oauth-flows.md) - OAuth 2.0 flow details - [references/console-app-example.md](references/console-app-example.md) - Console app implementation ## Common Patterns ### Pattern 1: First-Time App Registration Walk user through their first app registration step-by-step. **Required Information:** - Application name - Application type (web, SPA, mobile, service) - Redirect URIs (if applicable) - Required permissions **Script:** See [references/first-app-registration.md](references/first-app-registration.md) ### Pattern 2: Console Application with User Authentication Create a .NET/Python/Node.js console app that authenticates users. **Required Information:** - Programming language (C#, Python, JavaScript, etc.) - Authentication library (MSAL recommended) - Required permissions **Example:** See [references/console-app-example.md](references/console-app-example.md) ### Pattern 3: Service-to-Service Authentication Set up daemon/service authentication without user interaction. **Required Information:** - Service/app name - Target API/resource - Whether to use secret or certificate **Implementation:** Use Client Credentials flow (see [references/oauth-flows.md#client-credentials-flow](references/oauth-flows.md#client-credentials-flow)) ## MCP Tools and CLI ### Azure CLI Commands | Command | Purpose | |---------|---------| | `az ad app create` | Create new app registration | | `az ad app list` | List app registrations | | `az ad app show` | Show app details | | `az ad app permission add` | Add API permission | | `az ad app credential reset` | Generate new client secret | | `az ad sp create` | Create service principal | **Complete reference:** See [references/cli-commands.md](references/cli-commands.md) ### Microsoft Authentication Library (MSAL) MSAL is the recommended library for integrating Microsoft identity platform. **Supported Languages:** - .NET/C# - `Microsoft.Identity.Client` - JavaScript/TypeScript - `@azure/msal-browser`, `@azure/msal-node` - Python - `msal` **Examples:** See [references/console-app-example.md](references/console-app-example.md) ## Security Best Practices | Practice | Recommendation | |----------|---------------| | **Never hardcode secrets** | Use environment variables, Azure Key Vault, or managed identity | | **Rotate secrets regularly** | Set expiration, automate rotation | | **Use certificates over secrets** | More secure for production | | **Least privilege permissions** | Request only required API permissions | | **Enable MFA** | Require multi-factor authentication for users | | **Use managed identity** | For Azure-hosted apps, avoid secrets entirely | | **Validate tokens** | Always validate issuer, audience, expiration | | **Use HTTPS only** | All redirect URIs must use HTTPS (except localhost) | | **Monitor sign-ins** | Use Entra ID sign-in logs for anomaly detection | ## SDK Quick References - **Azure Identity**: [Python](references/sdk/azure-identity-py.md) | [.NET](references/sdk/azure-identity-dotnet.md) | [TypeScript](references/sdk/azure-identity-ts.md) | [Java](references/sdk/azure-identity-java.md) | [Rust](references/sdk/azure-identity-rust.md) - **Key Vault (secrets)**: [Python](references/sdk/azure-keyvault-py.md) | [TypeScript](references/sdk/azure-keyvault-secrets-ts.md) - **Auth Events**: [.NET](references/sdk/microsoft-azure-webjobs-extensions-authentication-events-dotnet.md) ## References - [OAuth Flows](references/oauth-flows.md) - Detailed OAuth 2.0 flow explanations - [CLI Commands](references/cli-commands.md) - Azure CLI reference for app registrations - [Console App Example](references/console-app-example.md) - Complete working examples - [First App Registration](references/first-app-registration.md) - Step-by-step guide for beginners - [API Permissions](references/api-permissions.md) - Understanding and configuring permissions - [Troubleshooting](references/troubleshooting.md) - Common issues and solutions ## External Resources - [Microsoft Identity Platform Documentation](https://learn.microsoft.com/entra/identity-platform/) - [OAuth 2.0 and OpenID Connect protocols](https://learn.microsoft.com/entra/identity-platform/v2-protocols) - [MSAL Documentation](https://learn.microsoft.com/entra/msal/) - [Microsoft Graph API](https://learn.microsoft.com/graph/) ## Dónde encaja - Categoría: [Seguridad](https://skillsagentes.com/categorias/seguridad.md) — Auditorías, revisión de dependencias, manejo de secretos y modelado de amenazas. - Creador: [microsoft](https://skillsagentes.com/creators/microsoft.md) — 43 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Microsoft Foundry](https://skillsagentes.com/skills/microsoft/azure-skills/microsoft-foundry.md): Despliega, evalúa, ajusta y gestiona agentes de Foundry de punta a punta con azd: agentes hospedados, evaluación por lotes y continua, optimizador de prompts y fine-tuning (SFT/DPO/RFT). - [Azure Prepare](https://skillsagentes.com/skills/microsoft/azure-skills/azure-prepare.md): Prepara proyectos Azure basados en azd para desplegar: genera azure.yaml, la infraestructura (Bicep o Terraform) y los Dockerfiles del flujo del Azure Developer CLI. - [Azure Diagnostics](https://skillsagentes.com/skills/microsoft/azure-skills/azure-diagnostics.md): Depura incidencias de producción en Azure con AppLens, Azure Monitor, resource health y triaje seguro. Cubre App Service, Container Apps, Functions, AKS, VMs y mensajería. - [Azure Validate](https://skillsagentes.com/skills/microsoft/azure-skills/azure-validate.md): Validación previa al despliegue en Azure. Comprueba en profundidad la configuración, la infraestructura (Bicep o Terraform), los roles RBAC, los permisos de identidad administrada y los prerrequisitos. - [Azure App Onboard](https://skillsagentes.com/skills/microsoft/azure-skills/azure-app-onboard.md): Orquestador de punta a punta: de una idea o una app existente hasta un despliegue en Azure, con estimación de costes y aprobación previa. Analiza tu app y detecta los servicios adecuados. ## Skills relacionadas - [Azure Compliance](https://skillsagentes.com/skills/microsoft/azure-skills/azure-compliance.md): Auditorías de cumplimiento y seguridad en Azure con azqr, más comprobación de caducidades en Key Vault. Cubre buenas prácticas, revisión de recursos, validación de políticas y postura de seguridad. - [Azure Kusto Irql](https://skillsagentes.com/skills/microsoft/azure-skills/azure-kusto-irql.md): Compone consultas IRQL (Incident Response Query Language) para investigaciones de ciberseguridad en Kusto. Traduce preguntas de hunting en pipelines componibles de funciones Get_*, Extract_* y Enrich_*. - [Azure Kusto Irql Graph](https://skillsagentes.com/skills/microsoft/azure-skills/azure-kusto-irql-graph.md): Aplica las funciones de grafo de IRQL a resultados de consultas KQL o IRQL para visualizarlos en Kusto Explorer. Genera mapeos Lift_To_Graph y compone las funciones de render, plegado y enriquecimiento. - [Entra Agent Id](https://skillsagentes.com/skills/microsoft/azure-skills/entra-agent-id.md): Aprovisiona Agent Identity Blueprints, BlueprintPrincipals e identidades de agente por instancia vía Microsoft Graph, y configura el intercambio de tokens OAuth 2.0 (fmi_path, OBO, cross-tenant). - [Airunway Aks Setup](https://skillsagentes.com/skills/microsoft/azure-skills/airunway-aks-setup.md): Instala AI Runway sobre AKS, de un clúster desnudo a un modelo funcionando: verificación del clúster, instalación del controlador, evaluación de GPU, configuración del proveedor y primer despliegue. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)