Gfacility

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.

PasoQué hacer
1Inicia sesión en Azure Portal → App registrations.
2Haz clic en + New registration e introduce un nombre.
3Elige el tipo de cuenta adecuado (p. ej. Accounts in this organizational directory only).
4Redirect URI puede dejarse vacío.
5Haz clic en Register. Anota el Application (client) ID y el Directory (tenant) ID.
6Ve a Certificates & secrets.
7Haz clic en + New client secret, descripción y fecha de caducidad.
8Haz clic en Add.

2. Asignar permisos de API

En el registro de la app ve a API permissions+ Add a permissionMicrosoft 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.