Compartir a través de


Usar autenticación multiinquilino entre servidores

La multitenencia es el escenario de aplicación más común y el que se usa para las aplicaciones distribuidas mediante Microsoft Marketplace, pero también puede usar multitenencia sin registrar su aplicación en Microsoft Marketplace.

Cada organización de Microsoft Dataverse está asociada con un tenant de Microsoft Entra ID. La aplicación web o el servicio se registra con su propio arrendatario de Microsoft Entra ID.

En este escenario cualquier inquilino de Dataverse puede usar potencialmente la aplicación multiinquilino después de un administrador conceda consentimiento para que la aplicación acceda a los datos.

Requisitos

Para crear y probar una aplicación multiempresa que usa autenticación entre servidores (S2S) necesitará:

  • Un inquilino de Microsoft Entra ID que usará para publicar la aplicación o el servicio.

  • Dos (2) suscripciones a Dataverse

    • Es necesario estar asociado al tenant de Microsoft Entra ID que se usará para publicar su aplicación o servicio.
    • La otra puede ser una suscripción de prueba para usar para comprobar cómo un suscriptor tendrá acceso a la aplicación.

Información general: Desarrolle y pruebe su aplicación

La aplicación que va a crear debe estar registrada con el entorno de Microsoft Entra ID que utilizará al momento de publicar la aplicación.

En un nivel alto, el proceso consistirá en:

  1. Cree una aplicación web multiinquilino registrada con su inquilino de Microsoft Entra ID.
  2. Crear un usuario de la aplicación asociado con la aplicación registrada en el inquilino de Dataverse
  3. Crear un rol de seguridad personalizado y asignarlo al usuario de la aplicación en su inquilino de Dataverse
  4. Probar la aplicación con el inquilino de Dataverse
  5. Probar la aplicación con un inquilino de Dataverse distinto

Crea una aplicación web multicliente registrada con tu inquilino de Microsoft Entra ID

Creará una aplicación web o servicio multiinquilino que usa Microsoft Entra ID como proveedor de autenticación.

Este tema no se centrará la manera exacta de hacer esto. Existen varias opciones posibles para abordar esto y realizar selecciones que se ajusten a sus requisitos o sus preferencias. Consulte los siguientes vínculos para obtener más información y ejemplos:

Microsoft Entra ID requiere los siguientes valores para registrar la aplicación:

valor Descripción
URI de id. de aplicación El identificador para una aplicación. Este valor se envía a Microsoft Entra ID durante la autenticación para indicar la aplicación para la que el autor de la llamada quiere un token. Además, este valor se incluye en el símbolo para que la aplicación sepa que era el destino deseado.
Dirección URL de respuesta y URI de redireccionamiento En el caso de una API web o una aplicación web, la dirección URL de respuesta es la ubicación a la que Microsoft Entra ID enviará la respuesta de autenticación, incluido un token si la autenticación se realizó correctamente.
Id de cliente Identificador de una aplicación, que se genera mediante Microsoft Entra ID cuando se registra la aplicación. Al solicitar un código de autorización o token, el identificador de cliente y la clave se envían a Microsoft Entra ID durante la autenticación.
clave Clave que se envía junto con un identificador de cliente al autenticarse en Microsoft Entra ID para llamar a una API web.

Cuando la aplicación esté registrada, se le asignará un Microsoft Entra ID Id. de objeto, un identificador único para la aplicación registrada.

Si crea una nueva aplicación de ASP.NET MVC con Visual Studio tendrá opciones para especificar que la aplicación admitirá la funcionalidad multiinquilino. La plantilla para una aplicación MVC proporciona la opción de especificar el tipo de autenticación que aparece. Tendrá la opción de elegir el método de autenticación configurando las propiedades del proyecto cuando lo cree. En el siguiente diagrama se muestran las opciones disponibles:

ASP.NET MVC Cuadro de diálogo Cambiar la autenticación.

Cuando se configura un proyecto con estas opciones se configurará para usar el software intermedio y el andamio de OWIN para una aplicación básica que admita este escenario. Con unas modificaciones básicas puede ser adaptado para funcionar con Dataverse.

En el proceso de crear y registrar la aplicación para desarrollo probablemente usará https://localhost como valores de Dirección URL de inicio de sesión y Dirección URL de respuesta para que pueda probar y depurar su aplicación localmente antes de publicarla. Necesitará cambiar estos valores antes de publicar la aplicación.

Cuando registre la aplicación debe generar una clave, también denominada ClientSecret. Estas claves se pueden configurar para una duración de 1 ó 2 años. Como host de la aplicación debe tratar este valor como una contraseña y es su responsabilidad administrar la renovación de las claves antes de que expiren. Es posible que quiera usar Key Vault. Más información: https://azure.microsoft.com/services/key-vault/

Conceda a la aplicación derechos para tener acceso a los datos de Dataverse

Este es el motivo por el que el inquilino de Dataverse debe estar asociado al inquilino de Microsoft Entra ID. Si la entidad de Microsoft Entra ID no está asociada con una entidad de Dataverse, no podrá realizar los siguientes pasos.

  1. Vaya a https://portal.azure.com y seleccione Microsoft Entra ID.
  2. Haga clic en App registrations y busque la aplicación que creó con Visual Studio.
  3. Debe proporcionar los privilegios de la aplicación para tener acceso a los datos de Dataverse. En el área Acceso de API haga clic en Permisos requeridos. Debería ver que ya tiene permisos para Windows Azure Active Directory.
  4. Haga clic en Agregar y, a continuación, en Seleccionar una API. En la lista, seleccione Dynamics 365 y haga clic en el botón Select.
  5. En Seleccionar permisos, seleccione Access Dynamics 365 como usuarios de la organización. A continuación, haga clic en el botón Seleccionar.
  6. Haga clic en Hecho para agregar estos permisos. Cuando finalice deberá ver los permisos aplicados.

Conceder permisos de Dynamics 365 a la aplicación.

Crear un usuario de la aplicación asociado con la aplicación registrada en Dataverse

Cuando la aplicación accede a los datos de Dataverse de uno de los suscriptores de la aplicación, necesitará un usuario de aplicación en la organización de Dataverse del suscriptor. Como cualquier usuario de Dataverse, este usuario de la aplicación debe estar asociado al menos a un rol de seguridad que defina los datos a los que el usuario tiene acceso.

La tabla SystemUser tiene tres nuevas columnas para almacenar estos datos.

Nombre de esquema Nombre Tipo Descripción
ApplicationId Identificador de la aplicación UniqueIdentifierType El identificador para la aplicación. Se usa para tener acceso a los datos en otra aplicación.
ApplicationIdUri URI de id. de aplicación StringType El URI usado como identificador lógico único para la aplicación externa. Se puede usar para validar la aplicación
AzureActiveDirectoryObjectId ID de objeto de Azure AD UniqueIdentifierType Es el Id. de objeto del directorio de la aplicación

Este valor de propiedad systemuser``AzureActiveDirectoryObjectId debe ser una referencia al identificador de objeto de Microsoft Entra ID de la aplicación registrada. Esta referencia se establecerá en Dataverse cuando se crea el usuario de la aplicación basándose en el valor de ApplicationId.

Nota

Al desarrollar inicialmente su aplicación con su propio entorno de Dataverse y el entorno de Microsoft Entra ID asociado, simplemente puede crear el usuario de la aplicación porque la aplicación registrada ya forma parte de su entorno de Microsoft Entra ID.

Sin embargo, para crear el usuario de la aplicación en otra organización para probar, o cuando un suscriptor usará su aplicación, primero deben conceder consentimiento para su aplicación, por lo que los pasos del proceso son diferentes. Vea Pruebe su aplicación usando un inquilino separado de Dynamics 365 para más información.

Crear un rol de seguridad para el usuario de la aplicación

En el siguiente paso creará un usuario de la aplicación de Dataverse. Los privilegios y derechos de acceso para este usuario serán definidos por un rol de seguridad personalizado que establezca. Antes de crear el usuario de la aplicación, debe crear un rol de seguridad personalizado para poder asociar el usuario con él. Más información: Creación o edición de roles de seguridad

Nota

El usuario de la aplicación no puede estar asociado con uno de los roles de seguridad de Dataverse predeterminados. Debe crear un rol de seguridad personalizado para asociar con el usuario de la aplicación.

Cree manualmente un usuario de la aplicación de Dataverse

El procedimiento interactivo para crear un usuario de aplicación sin licencia se describe en este artículo Crear un usuario de aplicación. Después de crear el usuario de la aplicación, asocie el usuario al rol de seguridad personalizado que creó en Crear un rol de seguridad para el usuario de la aplicación.

Más información: Administrar los usuarios de la aplicación en el Centro de administración de Power Platform

Probar la aplicación con el inquilino de Dataverse

Dado que la aplicación se ha registrado con el inquilino de Microsoft Entra ID y que el usuario de la aplicación de su organización de desarrollo ya está configurado, puede continuar desarrollando la aplicación en su propio inquilino de Dataverse. Pero esto no es una prueba válida de la capacidad multiempresa. Debe probar la aplicación con un inquilino de Dataverse distinto.

Probar la aplicación con un inquilino de Dataverse distinto

Antes de probar la aplicación con un inquilino de Dataverse independiente, un administrador del inquilino de Microsoft Entra ID debe conceder consentimiento para la aplicación. El administrador concede consentimiento navegando a la aplicación con un explorador. La primera vez que tiene acceso a la aplicación, verá un diálogo como éste:

Conceda su consentimiento para acceder a los datos de Dynamics 365.

Cuando conceden consentimiento, la aplicación registrada se agregará a la lista de aplicaciones de Microsoft Entra ID Enterprise y estará disponible para los usuarios del inquilino de Microsoft Entra ID.

Solo después de que un administrador haya concedido consentimiento, debe crear el usuario de la aplicación en el inquilino de Dataverse del suscriptor. Puede crear manualmente el usuario de la aplicación mediante los pasos descritos en Administrar manualmente un usuario de aplicación de Dynamics 365.

Para las pruebas iniciales es posible que desee realizar manualmente estos pasos. Cuando esté listo para poner su aplicación o servicio disponible para suscriptores necesitará un procedimiento más eficiente. Esto se cubre en la siguiente sección.

Preparar un método para implementar el usuario de la aplicación

Después de que los suscriptores concedan su consentimiento a la aplicación o servicio necesitará una forma fácil y fiable para que agreguen el usuario de la aplicación y cualquier otro componente requerido a su organización de Dataverse.

Debe incluir un rol de seguridad personalizado que defina qué privilegios requiere su aplicación y después asegurarse de que el usuario de la aplicación está asociado con ese rol de seguridad personalizado. Dado que un rol de seguridad personalizado se puede incluir en una solución, debe preparar una solución administrada que contiene la definición del rol de seguridad personalizado y cualquier otro componente de la solución que requiera su aplicación.

Para obtener información sobre la creación de roles de seguridad personalizados, vea

Sin embargo, el usuario de la aplicación no se puede incluir con una solución, por lo que deberá proporcionar una forma de crear este usuario de la aplicación y asociarlo con el rol de seguridad personalizado.

Existen varias formas de conseguirlo, incluida la escritura de su propio programa mediante los servicios web y haciendo que el suscriptor ejecute el programa.

El Dynamics 365 Package Deployer es una aplicación que se puede usar para preparar un paquete para automatizar la transferencia de soluciones y datos a otra organización de Dataverse. Más información: Crear paquetes para Package Deployer

Vea también

Usar autenticación entre servidores de un solo inquilino
Crear aplicaciones web mediante autenticación de servidor a servidor (S2S)
Autentíquese con los servicios web de Microsoft Dataverse