Microsoft 365 & Google Workspace
Integración con Office 365
Integración con Azure de tipo 2-legged para usuarios, salas y agendas: registro de la app, permisos, RBAC opcional y frecuencias de sincronización.
Actualizado el 4 may 2026
Integraciones · Autenticación · 1.2
La integración entre Gfacility y Office 365 se realiza mediante un enfoque 2-legged con un registro de aplicación en Microsoft Entra ID (antes Azure Active Directory). La app de Gfacility se autentica con su propia identidad: sin pop-ups ni consentimiento individual por usuario, lo que la hace más estable y segura.
1. Crea un registro de aplicación en Azure Portal
Crea un registro de aplicación dedicado para Gfacility, independiente de otras aplicaciones, con mejor control y seguridad.
| Paso | Qué hacer |
|---|---|
| 1 | Inicia sesión en Azure Portal → App registrations. |
| 2 | Haz clic en + New registration e introduce un nombre. |
| 3 | Elige el tipo de cuenta adecuado (p. ej. Accounts in this organizational directory only). |
| 4 | Redirect URI puede dejarse vacío. |
| 5 | Haz clic en Register. Anota el Application (client) ID y el Directory (tenant) ID. |
| 6 | Ve a Certificates & secrets. |
| 7 | Haz clic en + New client secret, descripción y fecha de caducidad. |
| 8 | Haz clic en Add. |
2. Asignar permisos de API
En el registro de la app ve a API permissions → + Add a permission → Microsoft Graph. Añade según el caso de uso:
Integración de usuarios
Para crear automáticamente y permitir el inicio de sesión de usuarios.
- Application:
User.Read.All - Delegated:
User.Read
Plazas / Ubicaciones
Sincronización automática de salas de reuniones desde Outlook.
- Application:
Place.Read.All
Eventos de Outlook
Para planificación, analítica y room display.
- Application:
Calendars.Read - Application:
Calendars.ReadWrite
Agendas compartidas
Acceso a buzones compartidos.
- Delegated:
Calendars.Read.Shared - Delegated:
Calendars.ReadWrite.Shared
Por último, haz clic en Grant admin consent for [Tenant], de lo contrario los permisos quedarán pendientes.
¿Cómo funciona la integración de Places?
Sincronización unidireccional de Outlook a Gfacility. Ante cada cambio en una sala reservable, Gfacility actualiza: Nombre, Código, Capacidad, Enlace a Outlook Room, Ubicación superior. Las ubicaciones superiores (Edificio, Planta) se crean automáticamente si aún no existen.
3. Restringir acceso mediante Exchange Online RBAC (opcional)
Por defecto, los Application permissions tienen acceso a todos los buzones y agendas del tenant. Para entornos multi-tenant o con seguridad estricta, puedes acotar el ámbito.
Implementación paso a paso (PowerShell)
A. Conectar y crear el Service Principal: usa el Application ID y el Object ID de la Enterprise Application, no del App Registration:
Connect-ExchangeOnline
New-ServicePrincipal `
-AppId "<Application ID>" `
-ObjectId "<Enterprise App Object ID>" `
-DisplayName "Gfacility Application RBAC"
B. Definir el Management Scope: por dominio o por grupo mail-enabled (los grupos de seguridad normales no funcionan):
# Opción 1: basado en dominio (los nuevos usuarios entran automáticamente en el ámbito)
New-ManagementScope `
-Name "Gfacility-DomainScope" `
-RecipientRestrictionFilter "PrimarySmtpAddress -like '*@contoso.com'"
# Opción 2: basado en grupo mail-enabled (multi-tenant / control total)
$Group = Get-DistributionGroup "Gfacility Scope"
New-ManagementScope `
-Name "Gfacility-GroupScope" `
-RecipientRestrictionFilter "MemberOfGroup -eq '$($Group.DistinguishedName)'"
C. Asignar Role Assignment y probar:
# 1. Asigna el ámbito a la app
New-ManagementRoleAssignment `
-Name "Gfacility-Calendars-Scoped" `
-Role "Application Calendars.Read" `
-App "<Application ID>" `
-CustomResourceScope "Gfacility-DomainScope"
# 2. Verifica la configuración
Get-ManagementRoleAssignment -App "<Application ID>" | Format-List Name,Role,CustomResourceScope
# 3. Prueba el acceso a un buzón concreto
Test-ServicePrincipalAuthorization -Identity "<Service Principal ID>" -Resource "[email protected]"
Consulta también la guía de Microsoft sobre Application RBAC en Exchange Online.
4. Comparte los datos con Gfacility
Para finalizar la instalación necesitamos:
- Application (client) ID
- Directory (tenant) ID
- Value del client secret
Comparte estos datos sensibles por un canal seguro (enlace de gestor de contraseñas), nunca por correo en texto plano.
Frecuencia de sincronización
Usuarios
Una vez por noche: las cuentas nuevas se crean automáticamente.
Ubicaciones (Places)
Una vez por noche: las salas se actualizan.
Eventos de Outlook
En tiempo real: para reservas y displays.