> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/es/automatizacion/connecting-azure-automation.md).

# Conectando Azure Automation

Conecta una cuenta de Azure Automation a RealmJoin Portal con el módulo de PowerShell de RealmJoin, para que RealmJoin pueda implementar, ejecutar y supervisar runbooks en tu Tenant.

## Descripción general

Para permitir que RealmJoin Portal entregue [runbooks](/es/automatizacion/runbooks.md) para automatizar tareas diarias, debe conectar un [Azure Automation](https://learn.microsoft.com/en-us/azure/automation/overview) Cuenta. Actúa como host para sus runbooks y proporciona los [permisos](/es/automatizacion/connecting-azure-automation/azure-ad-roles-and-permissions.md) que los runbooks necesitan para funcionar en su entorno.

La Automation Account se configura con el [módulo RealmJoin PowerShell](/es/despliegue/onboarding-realmjoin-portal/advanced-setup.md). El portal genera un comando listo para copiar — no hay ningún registro de aplicación que crear ni ningún secreto de cliente que gestionar.

{% hint style="info" %}
¿Ya están configurados los runbooks para su tenant con el legado **RealmJoin Runbook Management** registro de aplicación? Entonces consulte [Cambio a la app administrada de RealmJoin](/es/automatizacion/connecting-azure-automation/managed-app-migration.md). Conserva su Automation Account y sus runbooks, y elimina el secreto de cliente por tenant.
{% endhint %}

## Consideraciones

De la Automation Account [Identidad administrada](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) requiere amplios [permisos](/es/automatizacion/connecting-azure-automation/azure-ad-roles-and-permissions.md) en su entorno, como la capacidad de modificar objetos de grupo o de usuario en Entra ID o administrar buzones en Exchange Online. Limite el acceso administrativo a esta cuenta para evitar el uso indebido de estos privilegios.

Al usar una Automation Account existente, tenga en cuenta que RealmJoin Portal crea, actualiza y elimina automáticamente los runbooks procedentes del [repositorio compartido en línea de runbooks](https://github.com/realmjoin/realmjoin-runbooks). Es posible que esta funcionalidad no sea compatible con una Automation Account existente. Si no está seguro, recomendamos crear una Azure Automation Account dedicada para los runbooks de RealmJoin, algo que el comando de configuración hace por usted.

## Qué despliega la configuración

Al ejecutar el comando de configuración se crea:

* El **RealmJoin Azure Resources** principal de servicio en su tenant de Entra ID (si aún no existe)
* Una **Automation Account** con una identidad administrada asignada por el sistema, en la región del grupo de recursos — o su Automation Account existente, si especifica una
* **Contributor** para el principal de servicio de RealmJoin, con ámbito en esa Automation Account, para que RealmJoin pueda sincronizar e iniciar runbooks
* El **permisos de aplicación** para la identidad administrada que incluye el módulo — Microsoft Graph, Office 365 Exchange Online, Windows Defender ATP y SharePoint Online

RealmJoin se autentica contra Azure con su propia aplicación multi-tenant. No se crea ningún registro de aplicación ni ningún secreto de cliente en su tenant, y RealmJoin no recibe ningún permiso fuera de esa Automation Account.

{% hint style="warning" %}
De la identidad administrada **roles de directorio de Entra ID** — Intune Administrator, Exchange Administrator, User Administrator y demás — no están **no** asignados por el comando de configuración. Aún deben concederse por separado; consulte [Concesión de roles y permisos](/es/automatizacion/connecting-azure-automation/azure-ad-roles-and-permissions.md#granting-roles-and-permissions). Sin ellos, gran parte de los runbooks compartidos no funcionará.
{% endhint %}

## Requisitos previos

### En RealmJoin Portal

* Un rol que conceda acceso al área de Configuración (`CanReadSettingsDetails`, consulte [Permisos disponibles](/es/administracion-y-configuracion/permission/custom-roles/available-permissions.md)). La página de configuración genera el comando de configuración, incluido un token de incorporación de corta duración.

### En Azure

* Una suscripción de Azure y un **grupo de recursos existente** en el que desplegar — el módulo no crea el grupo de recursos. Se recomienda un grupo de recursos independiente para la Automation Account.
* Opcionalmente, una Automation Account existente. Si no especifica una, se creará una cuenta para usted.

### En la máquina donde se ejecuta PowerShell

* **PowerShell 5.1** o posterior (Windows PowerShell o PowerShell 7)
* Acceso a la [PowerShell Gallery](https://www.powershellgallery.com/packages/RealmJoin) para instalar el módulo RealmJoin
* El `Az.Accounts`, `Az.Resources` y `Az.Automation` módulos — el módulo RealmJoin los instala automáticamente en las versiones fijadas para el usuario actual

### Permisos de la cuenta con la que inicia sesión

* **Microsoft Entra ID:** permiso para crear service principals **y para conceder permisos de aplicación** — la configuración asigna roles de aplicación de Graph, Exchange, Defender y SharePoint a la identidad administrada. En la práctica, esto significa *Global Administrator* o *Privileged Role Administrator*.
* **Azure subscription:** permiso para desplegar en el grupo de recursos **y** y para crear asignaciones de roles en él — por ejemplo *Owner*, o *Contributor* combinado con *User Access Administrator* / *Role Based Access Control Administrator*.
* El inicio de sesión se realiza a través de `Connect-AzAccount`, que utiliza la **Azure PowerShell** aplicación propia de Microsoft. Los tenants que restringen el consentimiento de usuarios pueden necesitar conceder primero el consentimiento de administrador a esa aplicación.

{% hint style="warning" %}
Ejecute el comando en una **sesión local recién abierta de** PowerShell y evite **Azure Cloud Shell**. El módulo RealmJoin requiere versiones exactas de los `Az.*` módulos. Si ya hay cargada en la sesión una versión diferente — lo que normalmente ocurre en Cloud Shell — el módulo se detiene con un conflicto de versiones que solo puede resolverse abriendo una nueva sesión.
{% endhint %}

## Configuración

{% stepper %}
{% step %}

#### Prepare el grupo de recursos

En Azure Portal, cree o elija el grupo de recursos que debe contener la Automation Account. Anote su nombre y el ID de la suscripción en la que reside.

Si desea usar una **existente** Automation Account, anote también su nombre.
{% endstep %}

{% step %}

#### Copie el comando desde RealmJoin Portal

En RealmJoin Portal, vaya a **Configuración → Runbooks** (<https://portal.realmjoin.com/settings/runbooks-configuration>).

La página indica que la configuración de runbooks se gestiona mediante el módulo RealmJoin PowerShell y muestra un bloque de comandos. Use el **Copiar** botón para copiarlo.

```powershell
$latest = [version](Find-Module RealmJoin -Repository PSGallery -ErrorAction Stop).Version
if (-not (Get-Module -ListAvailable RealmJoin | Where-Object Version -ge $latest)) {
    Install-Module RealmJoin -Force -AllowClobber -ErrorAction Stop
}
Import-Module RealmJoin -Force
Set-RJAutomationAccount -Token "<Token>" 6>&1
```

{% hint style="info" %}
**Acerca de `6>&1`:** estos comandos informan de su progreso en la secuencia de información de PowerShell. La `6>&1` redirección muestra esa salida en la consola — sin ella no verá ningún mensaje de progreso.
{% endhint %}
{% endstep %}

{% step %}

#### Agregue los parámetros de destino

`Set-RJAutomationAccount` necesita saber dónde desplegar. Complete la última línea antes de ejecutarlo:

```powershell
Set-RJAutomationAccount -ResourceGroupName "rg-realmjoin" -SubscriptionId "<SubscriptionId>" -Token "<Token>" 6>&1
```

* `-ResourceGroupName` es obligatorio. Si lo omite, PowerShell se lo pedirá.
* `-SubscriptionId` es opcional — sin él, se usa la suscripción de su contexto actual de Azure y se le pide que elija si hay varias disponibles.
* `-AutomationAccountName` es opcional. Páselo para definir el nombre de una nueva Automation Account o para usar una **existente** Account; de lo contrario, se creará una nueva con un nombre generado.

{% hint style="warning" %}
Al apuntar el comando a una Automation Account existente, también se exigen los ajustes que RealmJoin espera en ella: una identidad administrada asignada por el sistema, la SKU Basic y acceso de red público. Compruebe si eso coincide con sus requisitos antes de reutilizar una cuenta.
{% endhint %}
{% endstep %}

{% step %}

#### Ejecute el comando

Pegue el bloque en una nueva sesión de PowerShell y ejecútelo. El token es válido durante aproximadamente una hora — si ha caducado, vuelva a cargar la página de configuración y copie de nuevo el comando.

Se le pedirá iniciar sesión con `Connect-AzAccount`. Si su cuenta tiene acceso a varios tenants o suscripciones, el módulo le pedirá que elija.

El despliegue se realiza en tres pasos — principal de servicio, Automation Account, permisos — e informa de cada recurso a medida que se crea. Una sola ejecución suele tardar unos minutos.

{% hint style="info" %}
¿Quiere ver primero qué ocurriría? Añada `-WhatIf` para obtener una vista previa What-If de Azure Resource Manager. Tenga en cuenta que iniciar sesión e instalar los `Az` módulos Az sigue ocurriendo, porque la vista previa necesita ambas cosas.
{% endhint %}

{% hint style="info" %}
**Cerrar sesión después:** el inicio de sesión de Azure permanece activo después de que el comando haya finalizado. Cuando termine, ejecute `Disconnect-AzAccount` para cerrar la sesión existente.
{% endhint %}
{% endstep %}

{% step %}

#### Asigne los roles de Entra ID a la identidad administrada

La configuración concede a la identidad administrada sus permisos de aplicación, pero no sus roles de directorio de Entra ID. Asígnelos ahora — consulte [Concesión de roles y permisos](/es/automatizacion/connecting-azure-automation/azure-ad-roles-and-permissions.md#granting-roles-and-permissions) la lista actual y un script que lo hace.

El ID de objeto de la identidad administrada se muestra en Azure Portal en la Automation Account, en Account Settings > Identity.

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F4ecZSM3NW9PWJJlaNmR4%2Fimage.png?alt=media&amp;token=e5d5b56b-50f3-4f35-a41b-7cb4230dd3f3" alt=""><figcaption><p>Identidad administrada de la Automation Account</p></figcaption></figure>
{% endstep %}

{% step %}

#### Verifique en el portal e inicie la primera sincronización

Vuelva a **Configuración → Runbooks** y seleccione **Actualizar**. RealmJoin detecta la nueva configuración e inicia la importación inicial de runbooks. Deje la página abierta hasta que se complete la sincronización.

La suscripción, el grupo de recursos, el nombre de la Automation Account y la ubicación se muestran ahora como solo lectura en **Conexión de Azure** — a partir de ahora las mantiene el módulo PowerShell.
{% endstep %}
{% endstepper %}

## Configuración que gestiona en el Portal

Dos ajustes siguen siendo editables en **Configuración → Runbooks** después de la configuración:

* **Rama** — la rama del [repositorio compartido de runbooks](https://github.com/realmjoin/realmjoin-runbooks) que desea seguir. La configuración lo establece en `production`, que es la opción correcta salvo que tenga un motivo para desviarse.
* **Habilitar la sincronización de Hybrid Runbook Worker** y el grupo de trabajadores que se va a usar, consulte [Hybrid Runbook Worker](/es/automatizacion/runbooks/hybrid-runbook-worker.md). El grupo debe estar registrado en la Automation Account antes de poder seleccionarlo aquí.

Guardar cualquiera de ellos desencadena una sincronización de runbooks.

Si más adelante encuentra problemas de configuración o permisos, el **Mostrar cmdlet** botón bajo Conexión de Azure vuelve a mostrar el comando — volver a ejecutarlo es seguro y solo aplica lo que falta.

## Configuración heredada (registro de aplicación por tenant)

{% hint style="warning" %}
La configuración siguiente crea un **RealmJoin Runbook Management** registro de aplicación con un secreto de cliente en su tenant. Solo se documenta como referencia para tenants que se configuraron así en el pasado. No lo use para nuevas configuraciones — siga el [Configuración](#setup) anterior, o [cambie una configuración existente a la app administrada](/es/automatizacion/connecting-azure-automation/managed-app-migration.md).
{% endhint %}

<details>

<summary>Mostrar la configuración heredada</summary>

En este enfoque, la Automation Account se creó manualmente en Azure Portal, sus permisos se asignaron con dos scripts externos y RealmJoin se autenticó con un registro de aplicación por tenant y un secreto de cliente.

**Parte 1 — Cree una Azure Automation Account**

1. Vaya a su [Azure Portal > Automation Accounts](https://portal.azure.com/#create/Microsoft.AutomationAccount) y cree una nueva Automation Account.
2. En la pestaña Basics, elija su Subscription, Resource Group, Automation Account Name y Region.
3. En la pestaña Advanced, asegúrese de que System Assigned Managed Identity esté habilitada.
4. Seleccione Review + Create y cree su Automation Account.
5. Vaya al grupo de recursos que contiene la Automation Account y, en la pestaña IAM, asigne a la Automation Account el rol Contributor.

![Creación de la Automation Account](https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FqjBLc2zH3XCCqfAViEsU%2Fimage.png?alt=media\&token=257816e0-eb8a-478c-973f-fb288324d8c8)

![Habilitación de la identidad administrada asignada por el sistema](https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FM9N3OxNzrzQXFxSaKIpP%2Fimage.png?alt=media\&token=1e7c4d5b-d604-415b-89e0-4816a7f04a26)

**Parte 2 — Asignar permisos a la Automation Account**

Los permisos de la identidad administrada no se pueden conceder a través de Azure Portal. Los [approle-and-directoryrole-granter](https://github.com/Workplace-Foundation/approle-and-directoryrole-granter) scripts asignan tanto los permisos de aplicación como los roles de Entra ID a partir de los archivos JSON publicados en el [repositorio de runbooks](https://github.com/realmjoin/realmjoin-runbooks/tree/production/docs/other/json):

```powershell
. .\GrantAppPermToEntApp.ps1 -enterpriseAppObjId "<ManagedIdentityObjectId>" -permissionsTemplate .\AllRealmJoinRunbooks_collected_permissions.json
. .\AssignAzureADRoleToEntApp.ps1 -objectId "<ManagedIdentityObjectId>" -rolesTemplate .\AllRealmJoinRunbooks_collected_rbacroles.json
```

**Parte 3 — Cree el principal de servicio para RealmJoin**

En el Portal, en Settings > Runbooks, primero se introdujeron el Tenant ID, el Subscription ID y el Resource Group; después la página mostró un fragmento de Azure CLI para ejecutar, que creó la **RealmJoin Runbook Management** registro de aplicación con permisos de Contributor sobre el grupo de recursos:

```
az provider register --namespace Microsoft.Automation
az ad sp create-for-rbac -n "RealmJoin Runbook Management" --role contributor --scopes /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroup>
```

**Parte 4 — Complete el asistente**

De vuelta en el Portal, el `appId` y `contraseña` de esa salida se introdujeron junto con el nombre de la Automation Account, la rama del repositorio compartido de runbooks (`production`) y la ubicación de la Automation Account. Al guardar se inició la importación inicial de runbooks.

![Conexión de Automation Account en RealmJoin Portal](https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FA0X3M2c9d13pxVt87Pf8%2Fimage.png?alt=media\&token=8e2f2b18-c3b1-4704-8cc8-eb4d43297dd1)

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.realmjoin.com/es/automatizacion/connecting-azure-automation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
