Gfacility

Microsoft 365 & Google Workspace

Integração com Office 365

Integração 2-legged com Azure para utilizadores, locais e calendários — registo da app, permissões, RBAC opcional e frequências de sincronização.

Atualizado em 4/05/2026

Integrações · Autenticação · 1.2

A integração entre o Gfacility e o Office 365 funciona através de uma abordagem 2-legged com um registo de aplicação no Microsoft Entra ID (anteriormente Azure Active Directory). A aplicação Gfacility autentica-se com a sua própria identidade — sem pop-up ou consentimento separado para cada utilizador, tornando-a mais estável e mais segura.

1. Criar um registo de aplicação no Azure Portal

Crie um registo de aplicação dedicado para o Gfacility — independente de outras aplicações, com melhor controlo e segurança.

PassoO que fazer
1Inicie sessão no Azure Portal → App registrations.
2Clique em + New registration e introduza um nome.
3Escolha o tipo de conta correto (por exemplo, Accounts in this organizational directory only).
4O Redirect URI pode ficar vazio.
5Clique em Register. Anote Application (client) ID e Directory (tenant) ID.
6Aceda a Certificates & secrets.
7Clique em + New client secret, indique uma descrição e data de expiração.
8Clique em Add.

2. Atribuir permissões de API

No registo da aplicação, aceda a API permissions+ Add a permissionMicrosoft Graph. Adicione conforme o caso de uso:

Integração de utilizadores

Para criação automática e início de sessão de utilizadores.

  • Application: User.Read.All
  • Delegated: User.Read

Locais / Localizações

Sincronização automática de salas de reunião do Outlook.

  • Application: Place.Read.All

Eventos do Outlook

Para planeamento, analytics e room display.

  • Application: Calendars.Read
  • Application: Calendars.ReadWrite

Calendários partilhados

Acesso a caixas de correio partilhadas.

  • Delegated: Calendars.Read.Shared
  • Delegated: Calendars.ReadWrite.Shared

Por fim, clique em Grant admin consent for [Tenant] — caso contrário, as permissões ficam pendentes.

Como funciona a integração de Places?

Sincronização unidirecional do Outlook para o Gfacility. A cada alteração numa sala reservável, o Gfacility é atualizado: Nome, Código, Capacidade, Ligação para a Outlook Room, Localização superior. As localizações superiores (Edifício, Piso) são criadas automaticamente caso ainda não existam.

3. Restringir o acesso através de Exchange Online RBAC (opcional)

Por predefinição, as Application permissions têm acesso a todas as caixas de correio e calendários do tenant. Para multi-tenant ou segurança rigorosa, é possível limitar o âmbito.

Implementação passo a passo (PowerShell)

A. Estabelecer ligação e criar o Service Principal — utilize o Application ID e o Object ID da Enterprise Application, não do App Registration:

Connect-ExchangeOnline

New-ServicePrincipal `
  -AppId "<Application ID>" `
  -ObjectId "<Enterprise App Object ID>" `
  -DisplayName "Gfacility Application RBAC"

B. Definir o Management Scope — por domínio ou por grupo mail-enabled (grupos de segurança regulares não funcionam):

# Opção 1: Com base no domínio (novos utilizadores ficam automaticamente no âmbito)
New-ManagementScope `
  -Name "Gfacility-DomainScope" `
  -RecipientRestrictionFilter "PrimarySmtpAddress -like '*@contoso.com'"

# Opção 2: Com base num grupo mail-enabled (multi-tenant / controlo total)
$Group = Get-DistributionGroup "Gfacility Scope"
New-ManagementScope `
  -Name "Gfacility-GroupScope" `
  -RecipientRestrictionFilter "MemberOfGroup -eq '$($Group.DistinguishedName)'"

C. Atribuir Role Assignment e testar:

# 1. Atribuir scope à app
New-ManagementRoleAssignment `
  -Name "Gfacility-Calendars-Scoped" `
  -Role "Application Calendars.Read" `
  -App "<Application ID>" `
  -CustomResourceScope "Gfacility-DomainScope"

# 2. Verificar configurações
Get-ManagementRoleAssignment -App "<Application ID>" | Format-List Name,Role,CustomResourceScope

# 3. Testar acesso a uma caixa de correio específica
Test-ServicePrincipalAuthorization -Identity "<Service Principal ID>" -Resource "[email protected]"

Consulte também o guia da Microsoft sobre Application RBAC no Exchange Online.

4. Comunicar os detalhes ao Gfacility

Para concluir a instalação, precisamos de:

  • Application (client) ID
  • Directory (tenant) ID
  • Value do client secret

Partilhe estes dados sensíveis através de um método seguro (link de password manager), nunca em e-mail aberto.

Frequência de sincronização

Utilizadores

Uma vez por noite — novas contas são criadas automaticamente.

Localizações (Places)

Uma vez por noite — as salas são atualizadas.

Eventos do Outlook

Em tempo real — para reservas e displays.