Configuración de claves administradas por el cliente en distintos inquilinos

Note

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Importante

Las características, funcionalidades o propiedades marcadas (versión preliminar) no están cubiertas por un contrato de nivel de servicio, no se recomiendan para cargas de trabajo de producción y pueden cambiar o restringirse antes de que estén disponibles con carácter general. Los términos de la versión preliminar Búsqueda de Azure AI se aplican a todas las funciones de vista previa, ya sea independiente o parte de una característica disponible con carácter general.

En este artículo se describe un escenario entre inquilinos en el que un proveedor de servicios aloja Búsqueda de Azure AI en su propio inquilino y habilita el cifrado con clave administrada por el cliente (CMK) mediante una aplicación multiinquilino de Microsoft Entra.

En esta configuración, el cliente usa Azure Key Vault en su propio inquilino para administrar su clave de cifrado. El proveedor de servicios no tiene acceso a esta clave.

Prerrequisitos

  • Tenant A: un inquilino y los permisos necesarios para crear el servicio Búsqueda de Azure AI y los objetos asociados (índices, listas de sinónimos, indexadores, orígenes de datos, vectorizadores, conjuntos de aptitudes). La compatibilidad con claves administradas por el cliente (CMK) requiere un plan de tarifa básico o superior.

  • Configure el servicio de búsqueda para el acceso basado en rol (recomendado para mejorar la seguridad, no necesario).

  • Tenant B: Un tenant de cliente independiente con un Azure Key Vault y los permisos necesarios en ese tenant:

    • Key Vault Colaborador: este rol es necesario si necesita crear un nuevo key vault.
    • Permiso para registrar aplicaciones en Microsoft Entra ID: Para instalar la aplicación multiinquilino configurada por el proveedor de servicios para CMK entre inquilinos, debe tener permiso para crear registros de aplicaciones en Microsoft Entra ID. Normalmente, esto requiere el rol Desarrollador de aplicaciones o un rol administrativo superior, como Administrador de aplicaciones o Administrador global.
    • Key Vault Crypto Officer: este rol es necesario para agregar una nueva clave al key vault.
    • Usuario de cifrado del servicio criptográfico de Key Vault: este rol se debe asignar a la entidad de servicio creada para la aplicación multiinquilino instalada a fin de otorgar a la entidad de servicio acceso a la clave administrada por el cliente en Key Vault. Debe tener permiso de administrador de acceso de usuario para hacerlo. Puede ver el GUID de la entidad de servicio (también conocido como Id. de objeto) en: Enterprise applications\<installed multitenant application>\Manage\Properties\Object ID.
  • Azure Key Vault también debe estar configurado para el control de acceso basado en roles.

  • CLI de Azure para enviar solicitudes.

Elección de un enfoque de autenticación

Puede configurar una aplicación de Microsoft Entra multiinquilino para usar claves administradas por el cliente en un escenario entre inquilinos mediante uno de los métodos siguientes:

  1. Compatibilidad con identidades federadas (versión preliminar, recomendada): configure Microsoft Entra credenciales de identidad federada (FIC) con una identidad administrada asignada por el usuario (UAMI). Este enfoque usa tokens de identidad administrada y los intercambia por tokens de acceso, lo que elimina la necesidad de secretos de larga duración y se alinea con los principios de la federación de identidades de carga de trabajo. Este enfoque requiere la propiedad de versión preliminar federatedIdentityClientId , introducida en la versión 2026-05-01-previewde API .

  2. Secretos de cliente: Configure un secreto de cliente mediante la propiedad accessCredentials. Este enfoque es menos seguro y requiere administración adicional para rotar y proteger el secreto.

Note

Azure Key Vault y Azure Key Vault HSM administrado usan las mismas API e interfaces de administración para las claves administradas por el cliente. Cualquier operación admitida en Azure Key Vault también se admite en Azure Key Vault HSM administrado.

Creación de una aplicación multiinquilino de Microsoft Entra en el inquilino A

Use la CLI de Azure para enviar solicitudes. El inquilino del proveedor de servicios que contiene Búsqueda de Azure AI se denominará inquilino A.

  1. Obtenga el identificador de inquilino: az account show --query tenantId --output tsv

  2. Asegúrese de que ha iniciado sesión en el inquilino A: az login --tenant \<tenant-A-id\>

  3. Cree el registro de la aplicación: az ad app create --display-name cross-tenant-auth --sign-in-audience AzureADMultipleOrgs

  4. Guarde el ID de la aplicación generado en este paso.

Usar soporte para identidades federadas (versión preliminar)

Para usar la identidad federada para brindar compatibilidad con un escenario de CMK entre inquilinos:

  1. El proveedor de servicios configura el servicio AI Search en su tenant (Tenant A). Para obtener instrucciones sobre cómo hacerlo, consulte Create a Search Service (en el portal de Azure) o use el az search service create en CLI de Azure.

  2. El proveedor de servicios crea un registro de aplicaciones multiinquilino de Microsoft Entra. Para obtener instrucciones sobre cómo hacerlo, consulte Cómo registrar una aplicación en Microsoft Entra ID o use el comando CLI de Azure: az ad app create. Registre el identificador de aplicación (cliente) una vez completado el registro de la aplicación.

  3. El proveedor de servicios configura una identidad administrada asignada por el usuario. Para obtener instrucciones sobre cómo hacerlo, consulte Administrar identidades administradas asignadas por el usuario mediante Azure portal o Administrar identidades administradas asignadas por el usuario mediante el CLI de Azure.

  4. El proveedor de servicios configura las identidades administradas asignadas por el usuario como una credencial de identidad federada en la aplicación. Para obtener instrucciones sobre cómo hacerlo, consulte Configuración de una aplicación para confiar en un proveedor de identidades externo.

  5. Una vez que el proveedor de servicios facilita el Id. de la aplicación multiinquilino, el cliente concede a la aplicación del proveedor de servicios acceso a Key Vault en su inquilino (inquilino B). Para instalar la aplicación en el inquilino B, se debe crear una entidad de servicio con el Id. de la aplicación multiinquilino. Para crear la entidad de servicio, cree una dirección URL de consentimiento del administrador y otorgue consentimiento para todo el inquilino, o utilice el comando az ad sp en la CLI de Azure.

  6. Si el cliente aún no tiene un almacén de claves que se va a usar, consulte Inicio rápido: Creación de un Azure Key Vault con el portal de Azure o Inicio rápido: Creación de una Azure Key Vault con el CLI de Azure. Key Vault necesitará que el modelo de permisos se establezca en “Control de acceso basado en roles de Azure (RBAC)” y que se concedan permisos a la aplicación multiinquilino del proveedor de servicios asignándole el Rol de Usuario de cifrado del servicio criptográfico de Key Vault. Después, el cliente puede crear una clave de cifrado. Para obtener instrucciones sobre cómo hacerlo, consulte Conceder permiso a las aplicaciones para acceder a un almacén de claves de Azure mediante Azure RBAC.

Una vez completados estos pasos, el proveedor de servicios ahora tiene:

  • Un ID de aplicación para una aplicación multicliente instalada en la entidad del cliente, a la que se le ha concedido acceso a la clave administrada por el cliente.

  • Una identidad administrada configurada como credencial federada en la aplicación para varios inquilinos.

  • La ubicación de la clave en el almacén de claves del cliente.

Con estos tres parámetros, el proveedor de servicios ahora puede crear objetos Búsqueda de Azure AI en Tenant A que se pueden cifrar con la clave administrada por el cliente almacenada en Tenant B. Para obtener instrucciones sobre cómo configurar claves administradas por el cliente en nuevos objetos de búsqueda, consulte Configure claves administradas por el cliente para Búsqueda de Azure AI datos cifrados.

Validar la configuración de CMK entre inquilinos de identidad federada

Después de configurar la aplicación multiinquilino Microsoft Entra y conectarla al Key Vault del cliente, compruebe la configuración mediante la creación de un objeto de prueba en el servicio de búsqueda (inquilino A). En este ejemplo se crea un índice para confirmar que el servicio de búsqueda puede acceder a la clave administrada por el cliente mediante la autenticación de identidad federada.

  1. Consulte Configurar claves administradas por el cliente para los datos cifrados de Búsqueda de Azure AI para obtener instrucciones sobre cómo crear un servicio de búsqueda y un nuevo objeto de índice con una clave administrada por el cliente.

  2. Una vez creado el objeto de índice, deberá rellenar lo siguiente:

    • keyVaultUri: dirección URI del cliente.
    • keyVaultKeyName: nombre de clave del cliente.
    • keyVaultKeyVersion: la versión de clave del cliente.
    • userAssignedIdentity: el <subscription-id> y el <resource-group> de su inquilino, y <identity-name> es el nombre de la identidad administrada asignada por el usuario.
    • federatedIdentityClientId: este valor de propiedad, <application-client-id>, será el identificador de la aplicación multiinquilino (cliente).
    {
      "name": "cross-tenant-cmk-test",
      "fields": [
        {
          "name": "id",
          "type": "Edm.String",
          "key": true
        }
      ],
      "encryptionKey": {
        "keyVaultUri": "https://<key-vault-name>.vault.azure.net/",
        "keyVaultKeyName": "<key-name>",
        "keyVaultKeyVersion": "<key-version>",
        "identity": {
          "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
          "userAssignedIdentity": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>",
          "federatedIdentityClientId": "<application-client-id>"
        }
      }
    }
    
  3. Compruebe el índice mediante el envío de una GET solicitud: GET https://<search-service>.search.windows.net/indexes/cross-tenant-cmk-test?api-version=2026-08-01-preview

Si la solicitud se realiza correctamente, la configuración de CMK entre inquilinos funciona correctamente.

Si la creación del índice falla con un error de acceso a la clave, compruebe que:

  • La identidad administrada asignada por el usuario está configurada correctamente.
  • La credencial de identidad federada se establece en la aplicación.
  • La directiva de acceso Key Vault o las asignaciones de roles de RBAC son correctas.

Usar un secreto de cliente (si el uso de identidad federada no es una opción)

Si la identidad federada no es una opción, puedes agregar un secreto de cliente a la aplicación multiinquilino para permitir un escenario de CMK entre inquilinos:

  1. Para agregar el secreto de cliente a la aplicación multiinquilino en el inquilino A, ejecute el siguiente comando:

    az ad app credential reset --id <multitenant-app-id>

  2. Guarde la salida de contraseña de este paso. La salida de contraseña es una entrada necesaria para configurar CMK en Búsqueda de Azure AI.

  3. Para especificar cuándo expira el secreto de cliente, puede especificar un parámetro de fecha de finalización para este comando.

    az ad app credential reset --id <multitenant-app-id> --end-date <end-date>

    El parámetro end-date acepta una fecha en formato ISO 8601. Por ejemplo: az ad app credential reset --id <multitenant-app-id> --end-date 2026-12-31.

Creación de una entidad de servicio en el inquilino B para la aplicación multiinquilino

Nos referimos al inquilino que contiene Azure Key Vault como inquilino B. En el inquilino B, cree una entidad de servicio para la aplicación multiinquilino en el inquilino A.

  1. Inicie sesión en el inquilino B:

    az login --tenant <tenant-B-id>

  2. Cree el principal de servicio usando el identificador de aplicación multiinquilino generado en el primer paso.

    az ad sp create --id <multitenant-app-id>

    Esta entidad de servicio es una instancia de la aplicación multicliente en el inquilino A. Los roles asignados a esta entidad de servicio en el inquilino B también se asignan a la aplicación multicliente en el inquilino A.

  3. Compruebe el vínculo entre el inquilino A y B; para ello, revise "appOwnerOrganizationId" en el siguiente comando:

    az ad sp show --id <multitenant-app-id>

    Este comando muestra los detalles del principal de servicio en JSON. Busque el campo "appOwnerOrganizationId" en la salida para confirmar que coincide con el identificador del inquilino A.

  4. Guarde el identificador de objeto de la entidad de servicio (del "id" campo) de este paso. El identificador de objeto es una entrada necesaria para configurar CMK en Búsqueda de Azure AI.

  5. Obtenga el identificador de recurso de Azure Key Vault:

    az keyvault show --name <key-vault-name> --query id --output tsv

  6. Asigne el rol de Usuario cifrado de servicio criptográfico Key Vault en el almacén de claves del inquilino B a la nueva entidad de servicio.

    az role assignment create --assignee <service-principal-object-id> --role "Key Vault Crypto Service Encryption User" --scope <key-vault-resource-id>

    Un ejemplo de esta asignación podría tener este aspecto:

    az role assignment create --assignee 00001111-aaaa-2222-bbbb-3333cccc4444 --role "Key Vault Crypto Service Encryption User" --scope /subscriptions/87654321-4321-4321-4321-210987654321/resourceGroups/myKeyVaultRG/providers/Microsoft.KeyVault/vaults/myCompanyKeyVault

Validar la configuración de CMK entre inquilinos del secreto del cliente

Después de configurar la aplicación multiinquilino Microsoft Entra y conectarla al Key Vault del cliente, compruebe la configuración mediante la creación de un objeto de prueba en el servicio de búsqueda (inquilino A). En este ejemplo se crea un índice para confirmar que el servicio de búsqueda puede acceder a la clave administrada por el cliente mediante el secreto de cliente.

  1. Consulte Configurar claves administradas por el cliente para los datos cifrados de Búsqueda de Azure AI para obtener instrucciones sobre cómo crear un servicio de búsqueda y un nuevo objeto de índice con una clave administrada por el cliente.

  2. Puede usar el portal de Azure para agregar un índice y proporcionar este JSON o usar un cliente REST para enviar una solicitud de Create Index. Una vez creado el objeto de índice, deberá rellenar lo siguiente:

    • keyVaultUri: dirección URI del cliente.
    • keyVaultKeyName: nombre de clave del cliente.
    • keyVaultKeyVersion: la versión de clave del cliente.
    • accessCredentials: El applicationId es algo así como 00001111-aaaa-2222-bbbb-3333cccc4444, y el applicationSecret es el valor que acabas de crear.
{
  "name": "cross-tenant-cmk-test",
  "fields": [
        {
            "name": "id",
            "type": "Edm.String",
            "key": true
        }
      ],
 "encryptionKey": {
        "keyVaultUri": "https://<key-vault-name>.vault.azure.net/",
        "keyVaultKeyName": "<key-name>",
        "keyVaultKeyVersion": "<key-version>",
    "accessCredentials": {
      "applicationId": "<application-client-id>",
      "applicationSecret": "<application-client-secret>"
    }
  }
}

Compruebe que el índice se creó correctamente:

GET https://<search-service>.search.windows.net/indexes/cross-tenant-cmk-test?api-version=2026-04-01

Para obtener más información sobre cómo rotar o administrar claves, consulte Configuración de claves administradas por el cliente para el cifrado de datos.