Usar autenticación multiinquilino entre servidores

Es el escenario de aplicaciones multiinquilino es el más común y el que se usa para las aplicaciones distribuidas con Microsoft AppSource, pero también puede usar multiinquilino sin enumerar su aplicación con Microsoft AppSource.

Cada organización de Microsoft Dataverse se asocia a un inquilino de Microsoft Entra ID. Su aplicación o servicio web se registra con su propio inquilino 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 de Dataverse

    • Una debe asociarse con el inquilino de Microsoft Entra ID que usará para publicar la aplicación o el 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 creará se debe registrar con el inquilino de Microsoft Entra ID que usará cuando publique la aplicación.

En un nivel alto, el proceso consistirá en:

  1. Crear una aplicación web multiempresa registrada con el 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

Crear una aplicación web multiempresa registrada con el inquilino de Microsoft Entra ID

Debe crear una aplicación o servicio web multiempresa que use 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 para qué aplicación desea un símbolo el autor de la llamada. 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 símbolo si la autenticación se realizó correctamente.
Id de cliente El identificador para una aplicación, que es generado por Microsoft Entra ID cuando se registra la aplicación. Al solicitar un símbolo o código de autorización, el identificador y la clave de cliente se envían a Microsoft Entra ID durante la autenticación.
Key La clave que se envía junto con un Id. de cliente al autenticar en Microsoft Entra ID para llamar a una API web.

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

Si crea una nueva aplicación ASP.NET MVC con Visual Studio tendrá que opciones para especificar que la aplicación admitirá la funcionalidad multiempresa. 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:

Diálogo Cambiar autenticación MVC de ASP.NET.

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. La conviene utilizar 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

Ésta es la razón por la que su inquilino de Dataverse debe estar asociado al inquilino de Microsoft Entra ID. Si el inquilino de Microsoft Entra ID no está asociado con un inquilino de Dataverse, no podrá realizar los pasos siguientes.

  1. Vaya a https://portal.azure.com y seleccione Microsoft Entra ID.
  2. Haga clic en Registros de la aplicación y busque la aplicación que ha creado mediante 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. Debe 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 luego haga clic en el botón Seleccionar.
  5. En Seleccionar permisos, seleccione Acceso a 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 a la aplicación registrada en Dataverse

Cuando su aplicación tiene acceso a los datos de Dataverse de uno de los suscriptores de su aplicación, necesitará un usuario de la 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 Id. de 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 la propiedad systemuser``AzureActiveDirectoryObjectId debe ser una referencia al Id. 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

Cuando está desarrollando inicialmente la aplicación con su propio inquilino de Dataverse y el inquilino de Microsoft Entra ID asociado con él, puede crear simplemente el usuario de la aplicación porque la aplicación registrada ya forma parte del inquilino 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. Para obtener más información, consulte Probar la aplicación mediante un inquilino de Dynamics 365 independiente.

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

Puesto que la aplicación se ha registrado con el inquilino de Microsoft Entra ID y el usuario de la aplicación en su organización de desarrollo ya está configurado, puede continuar desarrollando su aplicación con 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 su aplicación con un inquilino Dataverse aparte, un administrador para el 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:

Conceder consentimiento para acceder a datos de Dynamics 365.

Cuando concede consentimiento, su aplicación registrada se agregará a la lista de aplicaciones de Microsoft Entra ID Enterprise y está 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 que se describen en Crear manualmente un usuario de la 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 Package Deployer de Dynamics 365 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

Consultar también

Usar autenticación entre servidores de inquilino único
Crear aplicaciones web mediante autenticación de servidor a servidor (S2S)
Autenticación con servicios web de Microsoft Dataverse

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).