> 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).

# Tenancy dividida

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

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

SCEPman se puede configurar 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 tenencia dividida, es especialmente **útil para los MSP** que deseen consolidar los costos de infraestructura de Azure entre sus clientes mientras mantienen un backend dedicado y una CA única para cada uno de esos clientes.

La tenencia dividida conlleva una **desventaja importante**: [Identidades administradas](/es/despliegue-de-scepman/permissions/post-installation-config.md) ya no se puede usar. Esto significa que la autenticación contra la API Graph (Azure AD e Intune) se gestiona mediante un registro de aplicación y un secreto de cliente, que debe administrarse (por el MSP) a medida que expira.

En lo siguiente, nos referimos al tenant de hospedaje 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 la **tenant de origen**, realice una implementación estándar de SCEPman/Certificate Master como se describe en nuestra [Guía de inicio](/es/despliegue-de-scepman/deployment-guides.md).

### En SCEPman (Tenant de origen)

2. Vaya a 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** las siguientes configuraciones (**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á que SCEPman acceda 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 fecha de expiración y debe renovarse antes de que expire. Por favor, establezca un recordatorio para la renovación.
{% endhint %}

**Crear** las siguientes nuevas variables de entorno si no lo ha hecho ya 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ó antes <strong>(Tenant de destino).</strong></td></tr><tr><td><code>AppConfig:AuthConfig:TenantId</code></td><td>ID del Tenant de <strong>tenant de destino</strong>.</td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationKey</code></td><td><strong>Valor</strong> de la <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. Vaya a 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** para iniciar sesión en Certificate Master y emitir certificados, lo que incluye a los usuarios invitados en su Tenant de origen, p. ej., de 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 de** las siguientes configuraciones (**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** para iniciar sesión en Certificate Master y emitir certificados, lo que incluye a los usuarios invitados en su Tenant de destino, p. ej., de 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:

* Abre una **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 su URL de Certificate Master

* El **CMDlet** devolverá un **ID de aplicación** y un **ID de Tenant** (el de la **tenant de destino**). Introduzca estos dos valores como
  * `AppConfig:AuthConfig:HomeApplicationId` y
  * `AppConfig:AuthConfig:HomeTenantId` en la configuración de Certificate Master.
* Ahora **cree** las siguientes nuevas configuraciones de la 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 del Tenant de <strong>tenant de destino</strong>.</td></tr><tr><td><code>AppConfig:AuthConfig:ApplicationKey</code></td><td><strong>Valor</strong> de la <strong>Secreto de cliente</strong> que se creó como parte del <strong>registro de aplicación</strong> antes.\nSi lo desea, puede crear un nuevo secreto de cliente independiente para Certificate Master.</td></tr></tbody></table>

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

Como resumen, estas son las cuentas utilizadas por **Certificate Master** y para qué se utilizan:

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

Ahora la configuración de tenencia dividida está finalizada; puede continuar y configurar sus perfiles SCEP según su MDM.

## Consideraciones al tener múltiples Tenants de destino

Si desea tener varias instancias de SCEPman para emitir certificados a diferentes Tenants de destino, deberá tomar 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 proporcione el recurso de cómputo para todos sus App Services de SCEPman. Deben tenerse en cuenta los siguientes puntos al hacer esto para varios Tenants:

* Cada instancia debe tener su propio grupo de recursos para diferenciarlas
* Debe crear App Registrations para cada instancia para aislar los permisos
* El App Service Plan debe 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 --sirve--> app1
  asp --sirve--> app2

  app1 --> appreg1
  appreg1 -- lee datos--> i1
  appreg1 -- lee datos--> e1
  i1 --solicita certificados--> app1

  app2 --> appreg2
  appreg2 --lee datos--> i2
  appreg2 --lee datos--> e2
  i2 --solicita certificados--> app2
```

### Agregue 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>

### Cree registros de aplicación específicos para el cliente

Para aislar los permisos de las aplicaciones, deberá ajustar el comando posterior a la implementación para especificar App Registrations personalizadas:

{% 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 y configurar la tenencia dividida 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 by asking a question.

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

```
GET https://docs.scepman.com/es/configuracion-de-azure/split-tenancy.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.
