top of page
  • Foto del escritorAlejandro Caravantes Molina

Habilitar el desarrollo de aplicaciones a usuarios externos


¡Vamos con la vuelta de vacaciones! Sirva esta nueva entrada como calentamiento para los próximos dias 9 y 10 de Septiembre. ¿Cómo? ¿Todavía no sabes que tiene lugar en Madrid el Bizz Summit ES 2022? Se hablará mucho y muy interesante de Dynamics 365 y Power Platform. Si aún no tienes tu entrada... ¿a qué estas esperando? 👏🏻


Al lío con el post. Hasta ahora sabíamos que podíamos otorgar acceso a una determinada aplicación, a un usuario externo a la organización donde se ejecutaba dicha aplicación ¿cierto?. Bastaba con invitar al usuario externo al directorio activo de Azure, asignarle una licencia, compartirle la aplicación y listo, ¿verdad?. Si estoy hablando de algo que desconocías, te invito a que antes de seguir leyendo este post, eches un vistazo a la documentación oficial de esto que comento.


Bueno, pues el equipo de Microsoft Power Platform está trabajando en darle una vuelta de tuerca a esto. Es cierto que la funcionalidad que nos ocupa hoy todavía está en preview y como sabes las funcionalidades que están aún en esta fase no están disponibles para ser utilizadas en entornos productivos. Pero eso no significa que no podamos ir jugando y viendo como se comporta en este caso, la funcionalidad que va a permitir que usuarios externos o invitados además de ejecutar aplicaciones puedan desarrollarlas e implementarlas. Por supuesto, cuando hablo de aplicaciones, hablo de componentes Power Platform: tablas, flujos, etc 😊.


De echo si te has fijado, habrás podido observar como desde hace unos dias, en el portal de Power Apps, bajo el icono que representa el usuario logado ha aparecido una nueva opción con el nombre Switch Directory. ¿Has probado a hacer clic en esta nueva opción?



Si te has pegado con el tema de usuarios, licencias, accesos, etc. Es probable que una de las cosas que te estes preguntando sea lo siguiente:

¿Significa esto que el usuario invitado no consume licencia en la organización donde ha sido invitado?

Ya te adelanto la respuesta: el usuario invitado consume licencia tanto en su organización original (home tenant) como en la organización donde ha sido invitado (resource tenant). Al menos esto es asi a dia de hoy.

Eso si, como siempre, el tipo de licencia que consuma en uno y otro entorno dependerá de las características de los componentes que ejecute o desarrolle este usuario.


Las pruebas de que el tema del licenciamiento es como comento en el párrafo anterior, al final del post 😜.


Manos a la obra.

Vamos a ver cuáles son los pasos para poder configurar la colaboración de usuarios externos. En primer lugar necesitamos tener claro dos conceptos que nombraba mas arriba:

  • Home tenant representa la organización donde reside originalmente el usuario al que vamos invitar.

  • Resource tenant representa la organización donde el usuario invitado va desarrollar componentes. El tenant destino, por asi decirlo.

Todos los pasos que vamos a realizar a continuación, deben ser realizados en el resource tenant.


Inicia sesión en el Portal de Azure con una cuenta con permisos suficientes para modificar algunas características del directorio activo de Azure y para invitar usuarios externos. Dirígete a Azure Active Directory > External Identities > External collaboration settings. Las secciones de esta página deben quedar configuradas como ves en la imagen inferior. Ojo que estas configuraciones tienen sus particularidades que debes tener en cuenta y que puedes consultar aquí.

El paso siguiente es invitar al usuario externo. Selecciona Azure Active Directory > Users > New User > Invite external user. Indica la información necesaria para dar de alta al usuario externo y una vez realizado el alta, al usuario invitado le debería llegar un correo electrónico parecido al de la imagen inferior desde el que podrá aceptar la invitación.


Una vez el usuario invitado haya aceptado la invitación, aparecerá en el directorio activo del resource tenant. Lo siguiente que necesitamos hacer es asignarle una licencia al usuario invitado. Para ello dirígete a Azure Active Directory > Users y busca el usuario que acabas de agregar. Cuando accedas al detalle del nuevo usuario, bajo la sección Licenses podrás asignar una licencia al nuevo usuario externo.


Vamos con el (pen)último paso, ya que si te fijas hasta ahora no hemos hecho nada nuevo. Abre una ventana de Powershell con permisos de administrador, instala la ultima versión del módulo Microsoft.PowerApps.Administration.PowerShell y ejecuta los siguientes comandos con un usuario con permisos de administrador global Power Platform:

$requestBody = Get-TenantSettings $requestBody.powerPlatform.powerApps.enableGuestsToMake = $True 
Set-TenantSettings $requestBody 

Lo único que nos falta por hacer es acceder al entorno del resource tenant donde el usuario invitado va a comenzar a colaborar, y añadir al usuario invitado con el rol Environment Maker o System Customizer. Lógicamente toda esta operativa la puedes realizar mediante el uso de grupos de seguridad de Azure y los equipos de Microsoft Dataverse.


Si todo ha ido bien, el usuario invitado podrá hacer Switch Directory desde el home tenant al resource tenant y acceder al entorno sobre el que poder empezar a colaborar.


Como decía mas arriba, lo que se ve en la animación anterior es gracias a que el "mismo" usuario tiene licencias en ambos tenant. Las pruebas de que esto es así, lo puedes ver en la siguiente imagen. Según se añade como invitado el usuario en cuestión al resource tenant, lógicamente si no hay política de licenciamiento, no se le asigna ninguna licencia:


Si en ese estado intentamos añadir al usuario invitado a algun entorno del resource tenant, obtendremos el error que puedes ver en esta imagen. Confía en mí cuando digo que el usuario está activo en Azure Active Directory y que el entorno no está configurado con ningún grupo de seguridad.

El problema realmente, es que ese usuario no tiene licencia en el resource tenant.




La prueba de que esto es así está en la siguiente imagen, ya que si a ese usuario le asigno una licencia válida...


... el error desaparece y el usuario se crea sin ningún problema en el entorno en cuestión pudiendo ejecutar las aplicaciones para las que la licencia asignada le da permisos.


¡Gracias por haber llegado hasta aquí! Nos vemos en la siguiente.

Comentários


bottom of page