Búsqueda de sitios web

Habilitación de restricciones basadas en tiempo en acceso condicional


La capacidad de restringir el acceso de un usuario a sistemas vinculados a un dominio ha sido una característica de Active Directory desde el servidor Windows 2000, mediante el uso del atributo Logon-Hours en el esquema de Active Directory.

No ha cambiado mucho con esto a lo largo de los años, proporciona una función simple, mientras que si un usuario intenta iniciar sesión en su sistema fuera del horario permitido, simplemente se le negará.

Al observar lo que ahora es Microsoft Entra, algunos profesionales se quejan de la falta de paridad de funciones entre los dos servicios con nombres similares, mientras que algunos adoptan con entusiasmo el enfoque de trabajo moderno en materia de identidad y acceso. Fundamentalmente, las soluciones de identidad locales y basadas en la nube funcionan bajo la misma premisa, para brindar servicios de gestión de identidad y acceso, pero sus ejecuciones son bastante diferentes y con buenas razones para serlo.

Lamentablemente, hasta el día de hoy, todavía no está disponible una solución similar para el control de acceso basado en el tiempo en Microsoft Entra (anteriormente Azure Active Directory). Dicho esto, la posibilidad de controles similares en Microsoft Entra es una buena idea, ya que el desafío de cambiar las zonas horarias y las técnicas de evasión simples no son demasiado engorrosos para que Microsoft los resuelva. En esta publicación exploro algunos hallazgos que me llevan a creer que algo puede estar cambiando.

Identificación de posibles restricciones basadas en el tiempo a través del acceso condicional

Actualmente, no ha habido ningún anuncio o incluso una provocación por parte de Microsoft de que estén trabajando en restricciones de base de tiempo en el acceso condicional; todo esto es especulación sobre información que está disponible públicamente.

Es evidente que no existen tales configuraciones para controlar el acceso según la hora/día a través del asistente de acceso condicional en el centro de administración de Microsoft Entra, pero ¿qué pasa si marcamos Microsoft Graph?

Bueno, al realizar una solicitud GET simple al extremo Beta para mis políticas de acceso condicional (https://graph.microsoft.com/beta/policies/conditionalAccessPolicies) podemos ver una propiedad vacía devuelta llamada < fuertes>tiempos.

Por supuesto, esto no es mucho por lo que basarse. Publicar algunas preguntas en foros de redes sociales como Twitter y Reddit solo generó más especulaciones sobre cómo interactuar con esta propiedad y para qué podría servir, ya que aunque solo está presente en el punto final beta, todavía se devuelve públicamente. Menciono esto porque, aunque en la mayoría de los casos para evitar errores inexplicables, se recomienda la versión GA (v1.0) de Microsoft Graph, aún así, en muchos documentos y recomendaciones de Microsoft, el punto final beta todavía se usa/requiere, lo que plantea la cuestión de ¿Por qué se devuelve esta información?

Si aún no lo ha usado, siga mi guía sobre Cómo usar la herramienta Microsoft Graph Explorer. ¡Esta es una gran herramienta para cualquier usuario de PowerShell que le ayudará a encontrar permisos, encontrar ejemplos de código y escribir scripts!

Posibles configuraciones de tiempo en acceso condicional

Otra forma de identificar detalles en la respuesta de Microsoft Graph a las políticas de acceso condicional es a través de las herramientas de desarrollador en los navegadores web Chromium (Edge o Google Chrome, por ejemplo). Esto es algo en lo que detallo mucho en la publicación de mi blog: Cómo usar Invoke-MgGraphRequest con PowerShell.

En resumen, puede utilizar la función de inspección de herramientas de red integrada en estos navegadores web para ver las respuestas y cargas útiles de Microsoft Graph a medida que realiza cambios a través del portal. Luego podrá utilizar esta información para realizar el mismo cambio mediante programación la próxima vez.

Específicamente, mientras creaba una nueva política de acceso condicional, al hacer clic en guardar y esperar a que apareciera mi solicitud de cambio, noté que se estaba realizando una solicitud de validación previa:

Al ver la carga útil de esta solicitud, puede ver cómo analiza los datos de plantilla/ejemplo con fines de validación y, en este caso, los datos y el formato de las condiciones de base de tiempo:

Estos datos en JSON con el formato adecuado se parecen a lo siguiente. Tome nota de algunos valores importantes como intervalo de fechas, daysOfWeek, startTime y endTime, timezoneID< y isExcludeSet. Cada uno de estos valores podría ser indicativo de configuraciones futuras.

"time": {
      "applyCondition": false,
      "all": 0,
      "included": {
        "dateRange": {
          "startDateTime": "2023-8-16 0:0:0",
          "endDateTime": "2023-8-17 0:0:0"
        },
        "daysOfWeek": {
          "allDay": false,
          "day": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ],
          "startTime": "2023-8-16 0:0:0",
          "endTime": "2023-8-17 0:0:0"
        },
        "timezoneId": "",
        "type": 0,
        "isExcludeSet": false
      },
      "excluded": {
        "dateRange": {
          "startDateTime": "2023-8-16 0:0:0",
          "endDateTime": "2023-8-17 0:0:0"
        },
        "daysOfWeek": {
          "allDay": false,
          "day": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ],
          "startTime": "2023-8-16 0:0:0",
          "endTime": "2023-8-17 0:0:0"
        },
        "timezoneId": "",
        "type": 0,
        "isExcludeSet": false
      }
},

Conclusión

Desafortunadamente, solo se puede especular sobre los parámetros expuestos por la API Graph pública. ¿Son estas configuraciones una pista falsa o se están desarrollando activamente en Microsoft?

Al momento de escribir esta publicación, no se ha realizado ningún anuncio público y la información contenida en esta publicación se deriva de lo que está disponible a través de las respuestas de la API Beta de Microsoft Graph.

Artículos relacionados