> 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/managed-app-migration.md).

# Cambio a la aplicación administrada de RealmJoin

Sustituye el registro de la aplicación RealmJoin Runbook Management por Tenant y su secreto de cliente por la aplicación administrada multi-Tenant de RealmJoin, usando el módulo de PowerShell de RealmJoin.

## Resumen

Los Tenants que conectaron Azure Automation antes de la incorporación basada en PowerShell utilizan una **Administración de runbooks de RealmJoin** registro de aplicación en su propio tenant. RealmJoin se autentica contra su Automation Account con el ID de cliente y el secreto de cliente de esa aplicación.

Los Tenants recién incorporados ya no hacen esto: RealmJoin usa su propia **aplicación multitenant**, a la que se le concede Contributor en su Automation Account y nada más. Puede cambiar una configuración existente con el [módulo de PowerShell de RealmJoin](/es/despliegue/onboarding-realmjoin-portal/advanced-setup.md).

{% hint style="info" %}
Se recomienda cambiar a la aplicación administrada. La configuración heredada sigue siendo compatible por ahora; esto puede cambiar en el futuro y a los clientes afectados se les informará por separado.
{% endhint %}

### Por qué cambiar

* **No hay secreto de cliente que rotar.** El secreto por Tenant expira y debe renovarse; cuando expira, la sincronización de runbooks y la ejecución de runbooks se detienen hasta que alguien se da cuenta. La aplicación administrada no tiene ningún secreto de su lado.
* **No hay ningún registro de aplicación que mantener** en su tenant.
* **Alcance más restringido.** Al Service Principal heredado normalmente se le concedía Contributor en todo el grupo de recursos. A la aplicación administrada se le concede Contributor solo en la Automation Account.
* Se conservan la Automation Account (nombre y grupo de recursos), su identidad administrada asignada por el sistema con su ID de objeto, los roles de Entra ID y los permisos de aplicación asignados a esa identidad, y los runbooks importados.

## Qué cambia la transición

Lo mismo `Set-RJAutomationAccount` se usa el mismo comando que para una nueva configuración, apuntando a su **existente** Automation Account. Este:

* crea el **RealmJoin Azure Resources** Service Principal en su tenant, si todavía no existe
* le concede **Contributor** en esa Automation Account
* vuelve a confirmar los permisos de aplicación de la identidad administrada — Microsoft Graph, Exchange Online, Defender y SharePoint — para el conjunto que incluye el módulo
* indica a RealmJoin que se autentique con la aplicación administrada a partir de ahora

Su Automation Account conserva su nombre, su identidad administrada y su ID de objeto, por lo que los roles de Entra ID y cualquier permiso que le haya asignado siguen siendo válidos. Los runbooks no se reimportan desde cero.

{% hint style="warning" %}
El registro restablece la **rama** del repositorio compartido de runbooks a `producción`. Si su tenant sigue deliberadamente una rama diferente, configúrela de nuevo después en el Portal en Configuración → Runbooks.
{% endhint %}

## Requisitos previos

Lo mismo que para una nueva configuración — consulte [Requisitos previos](/es/automatizacion/connecting-azure-automation.md#prerequisites) en la página de incorporación. En resumen:

* Acceso al área de Configuración en el Portal de RealmJoin, para obtener el comando y su token
* PowerShell 5.1 o posterior, en una sesión local recién abierta — **no** Azure Cloud Shell
* Una cuenta que pueda crear Service Principals y conceder permisos de aplicación en Entra ID (*Administrador global* o *Administrador de roles con privilegios*)*Propietario*, o *Contributor* además de *Administrador de acceso de usuarios*)

## Migración

{% stepper %}
{% step %}

#### Copie el comando desde el Portal de RealmJoin

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

La página muestra el aviso **"Cambiar a la aplicación administrada de RealmJoin"** junto con un bloque de comandos listo para copiar. Use el **Copiar** botón para copiarlo.

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fgit-blob-84baa16d78a6621d669669725722fb774e6aa0ee%2Fmanaged-app-migration-notice.png?alt=media" alt="Settings → Runbooks with the notice &#x22;Switch to the RealmJoin managed app&#x22; and the pre-filled Set-RJAutomationAccount command"><figcaption><p>Aviso de migración y comando en Configuración → Runbooks</p></figcaption></figure>

El comando se completa previamente con su grupo de recursos actual, el nombre de la Automation Account y la suscripción:

```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 -ResourceGroupName "<ResourceGroup>" -AutomationAccountName "<AutomationAccountName>" -SubscriptionId "<SubscriptionId>" -Token "<Token>" 6>&1
```

{% hint style="warning" %}
Asegúrese de `-AutomationAccountName` esté presente y nombre su **existente** cuenta. Sin él, el módulo crea una nueva Automation Account vacía en lugar de cambiar la que usa.
{% 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 expirado, vuelva a cargar la página de configuración y copie el comando de nuevo.

Se le pedirá que inicie sesión con `Connect-AzAccount`. A continuación, la implementación informa de cada recurso y asignación de rol a medida que se aplica; todo lo que ya existe se detecta y se omite.

{% 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 haya terminado, ejecute `Disconnect-AzAccount` para cerrar la sesión existente.
{% endhint %}
{% endstep %}

{% step %}

#### Verifique en el Portal

Vuelva a **Configuración → Runbooks** y seleccione **Actualizar**.

El aviso de migración ha desaparecido y la página ahora muestra **Configuración de sincronización de runbooks** con las opciones de rama y de Hybrid Runbook Worker, además de una **conexión de Azure** de solo lectura. El ID de cliente y el secreto de cliente ya no forman parte de la configuración.

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fgit-blob-06c1123395052f67c34b525ad9254d0cb2ca2990%2Fmanaged-app-migration-verified.png?alt=media" alt="Settings → Runbooks after the switch, with Runbook sync settings and the read-only Azure connection section"><figcaption><p>Configuración de runbooks después del cambio</p></figcaption></figure>

Compruebe que la rama es la que desea y, a continuación, ejecute un runbook para confirmar que la ejecución sigue funcionando.
{% endstep %}

{% step %}

#### Limpie el antiguo registro de aplicación

Una vez que todo funcione, el **Administración de runbooks de RealmJoin** registro de aplicación ya no se usa para runbooks y puede eliminarse en Entra ID, junto con su asignación de rol Contributor en el grupo de recursos.

{% hint style="warning" %}
Compruebe primero qué otra cosa usa ese registro de aplicación. Es la misma aplicación que la configuración heredada de [Log Analytics](/es/supervision-y-registros/log-analytics.md) puede reutilizar — si su tenant sigue allí en la API de Data Collector, o sigue leyendo datos de registro escritos antes de esa migración, el registro de aplicación y su secreto siguen siendo necesarios. Consulte [Migración a la API de ingesta de registros](/es/supervision-y-registros/log-ingestion-api-migration.md).
{% endhint %}
{% endstep %}
{% endstepper %}

## Solución de problemas

<details>

<summary>"El módulo de RealmJoin está desactualizado: no se puede continuar con la ejecución"</summary>

Cada cmdlet verifica una vez por sesión que está ejecutando la versión publicada más reciente. Instale la versión actual, luego cierre la sesión y abra una nueva:

```powershell
Install-Module -Name RealmJoin -Force -Scope CurrentUser
```

</details>

<details>

<summary>Se informa de un conflicto de versiones del módulo</summary>

Un `Az.*` módulo en una versión distinta de la que fija el módulo de RealmJoin ya está cargado en la sesión. Esto no puede solucionarse dentro de la sesión en ejecución — cierre PowerShell, abra una nueva sesión y vuelva a ejecutar el comando. Esta es también la razón por la que no debe usar Azure Cloud Shell.

</details>

<details>

<summary>La implementación falla al crear asignaciones de rol</summary>

Crear la asignación de Contributor en la Automation Account requiere un rol que pueda administrar el acceso — por ejemplo *Propietario*, *Administrador de acceso de usuarios* o *Administrador de control de acceso basado en roles*. *Contributor* por sí solo no es suficiente.

Las asignaciones de rol que ya existen se detectan y se omiten, por lo que volver a ejecutar el comando después de corregir los permisos es seguro.

</details>

<details>

<summary>La implementación falla al asignar permisos de aplicación</summary>

Conceder los roles de aplicación de Microsoft Graph, Exchange, Defender y SharePoint a la identidad administrada requiere *Administrador global* o *Administrador de roles con privilegios*. Haga que alguien con ese rol ejecute el comando, o vuelva a ejecutarlo usted mismo después de que el rol haya sido activado.

</details>

<details>

<summary>La sincronización de runbooks deja de funcionar después del cambio</summary>

Abra **Configuración → Runbooks** y compruebe la advertencia que se muestra en la parte superior de la página — RealmJoin verifica la configuración de la Automation Account cada vez que se carga la página. Luego use **Mostrar cmdlet** en Conexión de Azure para volver a ejecutar el comando de configuración; es idempotente y vuelve a aplicar todo lo que falte.

</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/managed-app-migration.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.
