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.
| Passo | O que fazer |
|---|---|
| 1 | Inicie sessão no Azure Portal → App registrations. |
| 2 | Clique em + New registration e introduza um nome. |
| 3 | Escolha o tipo de conta correto (por exemplo, Accounts in this organizational directory only). |
| 4 | O Redirect URI pode ficar vazio. |
| 5 | Clique em Register. Anote Application (client) ID e Directory (tenant) ID. |
| 6 | Aceda a Certificates & secrets. |
| 7 | Clique em + New client secret, indique uma descrição e data de expiração. |
| 8 | Clique em Add. |
2. Atribuir permissões de API
No registo da aplicação, aceda a API permissions → + Add a permission → Microsoft 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.