Acesso Condicional baseado em horario
Time based Conditional Access, Acesso Condicional, Entra ID
O recursos que faltava
É isso mesmo que leu no título! O tão esperado recurso para ambientes PHS ou Cloud Only está saindo do forno!
Não é de hoje nem do ano passado que eu recebo perguntas do tipo:
“E como faço para controlar o horario que os usuários podem acessar os apps do M365?”.
O pedido não é apenas um “perfume”. Vários ambientes exigem esse tipo de controle que era fácilmente atingível utilizando as opções de Logon Hours no AD. Se você hoje tem um ambiente híbrido e utiliza PHS ou se tem um ambiente Cloud Only, a única forma de entregar esse controle é por meio de automação. Relativamente simples, mas ainda assim, algo customizado, nada built-in.
Pequeno adendo, se você tiver identidade hibrida e utiliza PTA, o Logon Hours do AD já resolve seu problema =D.
Acesso Condicional baseado em Horário
Antes de mais nada
Os testes realizados aqui são de um recurso que ainda está em Beta, nem mesmo em preview e sem documentação oficial da Microsoft. Utilize por sua conta e risco e NUNCA em produção
Indo até o Graph Explorer e rodando um GET nas políticas de Acesso Condicional, você notará um campo disponível chamado: “Times“.

Expandindo um pouco mais os testes, podemos rodar um PATCH na seção de Times da política e definir dias da semana e horário em que essa regra será aplicada.

{
"conditions": {
"times": {
"includeAllTimes": true,
"includeDays": null,
"excludeDays": {
"daysOfWeek": ["monday", "tuesday", "wednesday", "thursday", "friday"],
"timeZone": "UTC",
"startTime": "02:15:00",
"endTime": "00:00:00",
"allDay": false
},
"includeRange": null,
"excludeRange": null
}
}
}
Note que os horarios devem ser informados no padrão UTC. Eu testei utilizando outras Time Zones mas em todas as opções retorno erro. Por enquanto, utilize um conversor de Time Zone para encontrar o horario exato para seus testes. Tudo caminhando bem, sua política será configurada considerando o horario que você definiu ali no Patch. No meu caso, criei uma política de Block para um usuário apenas, e nela defini que entre 23:15 e 00:00 o acesso seria bloqueado.
O resultado
Ao tentar logar após o horario definido, recebo uma mensagem informando que o acesso não é permitido. Aquele genérico de blocks por conta de Acesso Condicional. Por enquanto nenhuma mensagem personalizada que indique o motivo do block tem sido exibida, tampouco lá nos Sign-in Logs.
O que encontrará será apenas, também, um log genérico te mostrando que um bloqueio ocorreu, mas nada indica que foi por conta do horário definido.
Detalhes Importantes
- Eu vou repetir! Esse recurso é para ser utilizado como TESTE, e nada além disso. Não existe suporte alguem da Microsoft ainda. Espero ver em breve o recurso em Preview
- Você pode esperar ainda instabilidade nesse recurso. Como comentei, é um BETA no Graph API
- A opção de horario (Times) não está disponível e nem é exibida na console do Entra. Você conseguirá ver isso apenas via Graph
- As alterações não alterarão nada na console do Entra (nenhum campo novo será exibido). Novamente, tudo via Graph
- Os logs sign-in não dão pista nenhuma. Conseguimos concluir que a política foi aplicada dando comparando o horario de acesso com o que foi configurado. No meu caso, testei com dois usúarios, um que era alvo da política de horario e outra que não estava listado.
Só pra reforçar. NEM PENSE EM USAR ISSO EM PRODUÇÃO, POR ENQUANTO.
Conclusão
Ainda em Beta, mas tudo indica que logo menos teremos esse baita recurso disponível nas console do Entra, entregando ainda mais flexibilidade para gestão e governança de identidades com o Entra ID.
Depois me conta se testou e funcionou. Espero que tenha curtido!
Grande abraço \,,/

