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

# Tenencia dividida

{% hint style="warning" %}
Solo para SCEPman Enterprise Edition
{% endhint %}

## Resumen <a href="#overview" id="overview"></a>

SCEPman puede configurarse para funcionar desde un Tenant de Azure separado del Tenant de Azure/Intune para el cual emite certificados a usuarios y/o dispositivos. Esta configuración, conocida como split-tenancy, es especialmente **útil para los MSP** que deseen consolidar los costos de infraestructura de Azure entre sus clientes, manteniendo al mismo tiempo un backend dedicado y una CA única para cada uno de esos clientes.

El split-tenancy conlleva una **importante desventaja**: [Las identidades administradas](/es/despliegue-de-scepman/permissions/post-installation-config.md) ya no pueden utilizarse. Esto significa que la autenticación frente a la API de Graph (Azure AD e Intune) se gestiona mediante un registro de aplicación y un secreto de cliente, que debe ser administrado (por el MSP) a medida que expira.

A continuación, nos referimos al Tenant de alojamiento como **Tenant de origen,** mientras que al Tenant del cliente como **Tenant de destino**. Los recursos de SCEPman existirán en el **Tenant de origen**, y los dispositivos administrados en el **Tenant de destino** como en el gráfico a continuación:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Ft8uOQQC6iNXE2XeveTgY%2Fscepman-split-graphic.png?alt=media&amp;token=edb7ed01-20e3-4a88-9927-01275e510d01" alt=""><figcaption></figcaption></figure>

## Pasos de configuración

1. En el **Tenant de origen**, realice una implementación estándar de SCEPman/Certificate Master como se describe en nuestra [Guía de inicio rápido](/es/despliegue-de-scepman/deployment-guides.md).

### En SCEPman (Tenant de origen)

2. Navegue hasta el App Service de SCEPman **App Service** y luego a "Settings" --> "Environment variables". Localice los siguientes parámetros y **elimínelos** .

| Variables de entorno                                            |
| --------------------------------------------------------------- |
| `AppConfig:AuthConfig:ManagedIdentityEnabledForWebsiteHostname` |
| `AppConfig:AuthConfig:ManagedIdentityEnabledOnUnixTime`         |
| `AppConfig:AuthConfig:ManagedIdentityPermissionLevel`           |

3. **Cambie el nombre de** los siguientes ajustes (**no cambie sus valores**):

<table><thead><tr><th width="384">Nombre original</th><th>Nuevo nombre</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td><code>AppConfig:AuthConfig:HomeApplicationId</code></td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td><code>AppConfig:AuthConfig:HomeTenantId</code></td></tr></tbody></table>

4. Cree un **registro de aplicación** en el **Tenant de destino** como se describe aquí: [Registro de aplicación de Azure](/es/despliegue-de-scepman/permissions/azure-app-registration.md). Esto **registro de aplicación** permitirá a SCEPman acceder a los directorios de Azure AD e Intune en el **Tenant de destino**.

{% hint style="warning" %}
El **secreto de cliente** generado como parte de este **registro de aplicación** tiene una expiración y debe renovarse antes de que caduque. Por favor, establezca un recordatorio para la renovación.
{% endhint %}

**Cree** las siguientes nuevas variables de entorno si aún no lo ha hecho durante la creación del registro de aplicación:

<table><thead><tr><th width="395">Nombre</th><th>Valor</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td>GUID del <strong>registro de aplicación</strong> que se creó anteriormente <strong>(Tenant de destino).</strong></td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td>ID de Tenant del <strong>Tenant de destino</strong>.</td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationKey</code></td><td><strong>Valor</strong> del <strong>secreto de cliente</strong> que se creó como parte del <strong>registro de aplicación</strong> en el <strong>Tenant de destino</strong>.</td></tr></tbody></table>

5. Aplique los cambios.
6. Reinicie el SCEPman **App Service**.

### Certificate Master

7. Navegue hasta el Certificate Master **App Service** y luego a "Settings" > "Environment variables".
8. Ahora tiene dos opciones:
   1. Si desea que los usuarios de su **Tenant de origen** inicien sesión en Certificate Master y emitan certificados, lo que incluye a usuarios invitados en su Tenant de origen, p. ej. desde su Tenant de destino.

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FXqlVQSz8vRMLpm9ijTb3%2Fscepman-split-graphic2.png?alt=media&amp;token=18945a73-dc3b-416e-85da-a4f8cf267c61" alt=""><figcaption><p>Opción 1: Los usuarios del Tenant de origen inician sesión en Certificate Master</p></figcaption></figure>

Si ese es el caso, **cambie el nombre** los siguientes ajustes (**no cambie sus valores**):

<table><thead><tr><th width="385">Nombre original</th><th>Nuevo nombre</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td><code>AppConfig:AuthConfig:HomeTenantId</code></td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td><code>AppConfig:AuthConfig:HomeApplicationId</code></td></tr></tbody></table>

b. Desea que los usuarios de su **Tenant de destino** inicien sesión en Certificate Master y emitan certificados, lo que incluye a usuarios invitados en su Tenant de destino, p. ej. desde su Tenant de origen.

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FOKLaoNuGHkWV7zvScKvi%2Fscepman-split-graphic3.png?alt=media&amp;token=ed862008-d054-4a16-8912-07d578bc582c" alt=""><figcaption><p>Opción 2: Los usuarios del Tenant de destino inician sesión en Certificate Master</p></figcaption></figure>

Si ese es el caso, haga lo siguiente:

* Abra un **PowerShell** o **Azure Cloud Shell** en su **Tenant de destino** y ejecute los siguientes comandos:

```
Install-Module SCEPman -Scope CurrentUser -Force
Register-SCEPmanCertMaster -CertMasterBaseURL <url>
```

Reemplace `<url>` por la URL de su Certificate Master

* El **CMDlet** devolverá un **Application Id** y un **Tenant Id** (el del **Tenant de destino**Tenant de destino). Introduzca estos dos valores como
  * `AppConfig:AuthConfig:HomeApplicationId` y
  * `AppConfig:AuthConfig:HomeTenantId` en la configuración de su Certificate Master.
* Ahora **cree** las siguientes nuevas configuraciones de aplicación, posiblemente sobrescribiendo las existentes, con los mismos valores que en SCEPman:

<table><thead><tr><th width="393">Nombre</th><th>Valor</th></tr></thead><tbody><tr><td><code>AppConfig:AuthConfig:ApplicationId</code></td><td>GUID del <strong>registro de aplicación</strong> que se creó antes.</td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td>ID de Tenant del <strong>Tenant de destino</strong>.</td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationKey</code></td><td><strong>Valor</strong> del <strong>secreto de cliente</strong> que se creó como parte del <strong>registro de aplicación</strong> antes.\nPuede crear un nuevo secreto de cliente separado para Certificate Master si lo desea.</td></tr></tbody></table>

9. Guarde los cambios
10. Reinicie el SCEPman Certificate Master **App Service**.
11. Otorgue los permisos para solicitar certificados a través de la **Certificate Master** aplicación web, vea [aquí](/es/despliegue-de-scepman/permissions/post-installation-config.md#granting-the-rights-to-request-certificates-via-the-certificate-master-website).

Como resumen, aquí están las cuentas utilizadas por **Certificate Master** y para qué se usan:

| Cuenta                                                   | ¿Para qué se usa?                                                                                                                                                                                                | Notas                                                                                   |
| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| Identidad administrada                                   | <ul><li>Autorizar los CSR enviados a SCEPman</li><li>Acceso al Storage Account</li></ul>                                                                                                                         | N/D                                                                                     |
| Registro de aplicación con App ID de `ApplicationId`     | Certificate Master accede a Microsoft Graph en este contexto para ver qué certificados se han inscrito mediante Intune                                                                                           | Si `ApplicationKey` no está presente, se utiliza en su lugar la Identidad administrada. |
| Registro de aplicación con App ID de `HomeApplicationId` | Los usuarios se autentican **en** esta aplicación. Debe estar en el Tenant donde residen los usuarios que acceden a Certificate Master (pero los usuarios invitados de otros Tenants también pueden autorizarse) | Si `HomeApplicationId` no está presente, `ApplicationId` se utiliza en su lugar.        |

Ahora que la configuración de split-tenancy ha finalizado, puede continuar y configurar sus perfiles SCEP según su MDM.

## Consideraciones al tener múltiples Tenants de destino

Si desea tener múltiples instancias de SCEPman para emitir certificados a distintos Tenants de destino, deberá realizar pasos de configuración adicionales para aislar estas instancias entre sí.

Un posible concepto podría incluir un grupo de recursos de administración que contenga un único App Service Plan que proporcionará el recurso de cómputo para todos sus App Services de SCEPman. Los siguientes puntos deben tenerse en cuenta al hacer esto para múltiples Tenants:

* Cada instancia debería tener su propio grupo de recursos para distinguirlas
* Debería crear registros de aplicación para cada instancia para aislar los permisos
* El App Service Plan debería crearse en un grupo de recursos de administración independiente, ya que presta servicio a varias instancias

En este diagrama, un Tenant de administración y sus dos instancias de SCEPman proporcionan certificados a los Tenants de Contoso y Tailwind:

```mermaid
graph LR
  subgraph t0[Tenant de administración]
  subgraph rg0[rg-scepman-mgmt]
    asp[asp-scepman-mgmt]
  end

  subgraph rg1[rg-scepman-contoso]
    app1[app-scepman-contoso]
    appreg1[scepman-api-contoso]
  end

  subgraph rg2[rg-scepman-tailwind]
    app2[app-scepman-tailwind]
    appreg2[scepman-api-tailwind]
  end
  end

  subgraph t1[Tenant de Contoso]
    i1[Intune]
    e1[Entra ID]
  end

  subgraph t2[Tenant de Tailwind]
    i2[Intune]
    e2[Entra ID]
  end

  classDef rg stroke:#6dc3d1, fill:#d5ecf2
  classDef asp stroke:#2962FF, fill:#e0e7ff
  classDef app stroke:#fcd116, fill:#FFF8D8
  classDef appreg stroke:#6DD185, fill:#ddffd8
  classDef tenant stroke:#4d93c0, fill:#d0e2f0
  classDef entra color:#ffffff, stroke:#0b58a4, fill:#0078d6
  classDef intune stroke:#2ebddd, fill:#d9f4fa

  class rg0,rg1,rg2 rg
  class asp asp
  class app1,app2 app
  class appreg1,appreg2 appreg
  class t0,t1,t2 tenant
  class e1,e2 entra
  class i1,i2 intune

  asp --serves--> app1
  asp --serves--> app2

  app1 --> appreg1
  appreg1 -- reads data--> i1
  appreg1 -- reads data--> e1
  i1 --requests certificates--> app1

  app2 --> appreg2
  appreg2 --reads data--> i2
  appreg2 --reads data--> e2
  i2 --requests certificates--> app2
```

### Agregar una nueva instancia de SCEPman a un App Service Plan existente

Al implementar una nueva instancia de SCEPman mediante el [método de implementación empresarial](https://docs.scepman.com/scepman-deployment/deployment-options/enterprise-deployment) se le ofrece la posibilidad de introducir el id de recurso de un App Service Plan existente al que se debe agregar esta instancia.

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FxHUNSYYW9FleCHCmxiGB%2Fimage.png?alt=media&amp;token=dd7885b4-fe66-444a-b507-eaa0c2d0880d" alt=""><figcaption></figcaption></figure>

Este id de recurso se puede encontrar en las propiedades del App Service Plan existente:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FvfeVKRZqRbm4U4BcRTCE%2Fimage.png?alt=media&amp;token=f7304314-93f5-4c50-8ae9-b8809407adeb" alt=""><figcaption></figcaption></figure>

### Crear registros de aplicación específicos para cada cliente

Para aislar los permisos de las aplicaciones, deberá ajustar el comando posterior a la implementación para especificar Registros de aplicación personalizados:

{% code overflow="wrap" %}

```powershell
Complete-SCEPmanInstallation -SCEPmanAppServiceName "app-scepman-contoso" -AzureADAppNameForSCEPman "scepman-api-contoso" -AzureADAppNameForCertMaster "certmaster-contoso" -SearchAllSubscriptions 6>&1
```

{% endcode %}

Este comando dará como resultado una instancia de SCEPman completamente configurada y aislada de las instancias anteriores. Ahora puede continuar para configurar la split-tenancy para esta instancia.

La sección anterior sobre Certificate Master ahora puede aplicarse opcionalmente si desea que este servicio sea accesible desde el Tenant del cliente.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.scepman.com/es/configuracion-de-azure/split-tenancy.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
