Directivas de control de acceso de cliente en AD FS 2.0
Las directivas de acceso de cliente de Servicios de federación de Active Directory (AD FS) 2.0 permiten restringir o conceder a los usuarios acceso a los recursos. En este documento se describe cómo habilitar las directivas de acceso de cliente en AD FS 2.0 y cómo configurar los escenarios más comunes.
Habilitación de una directiva de acceso de cliente en AD FS 2.0
Para habilitar una directiva de acceso de cliente, siga los pasos que se indican a continuación.
Paso 1: Instalación del paquete acumulativo de actualizaciones 2 para AD FS 2.0 en los servidores de AD FS
Descargue el paquete acumulativo de actualizaciones 2 para Servicios de federación de Active Directory (AD FS) 2.0 e instálelo en todos los servidores de federación y servidores proxy de federación.
Paso 2: Adición de cinco reglas de notificaciones a la confianza del proveedor de notificaciones de Active Directory
Una vez instalado el paquete acumulativo de actualizaciones 2 en todos los servidores y servidores proxy de AD FS, use el siguiente procedimiento para agregar un conjunto de reglas de notificaciones que haga que los nuevos tipos de notificación estén disponibles para el motor de directivas.
Para ello, debe agregar cinco reglas de transformación de aceptación para cada uno de los nuevos tipos de notificación de contexto de solicitud por medio del procedimiento siguiente.
En la confianza del proveedor de notificaciones de Active Directory, cree una nueva regla de transformación de aceptación para pasar por cada uno de los nuevos tipos de notificación de contexto de solicitud.
Para agregar una regla de notificación a la confianza del proveedor de notificaciones de Active Directory para cada uno de los cinco tipos de notificación de contexto:
Haga clic en Inicio, seleccione Programas, Herramientas administrativas y elija Administración de AD FS 2.0.
En el árbol de consola, en AD FS 2.0\Relaciones de confianza, haga clic en Confianzas de proveedores de notificaciones, haga clic con el botón derecho en Active Directory y elija Editar reglas de notificación.
En el cuadro de diálogo Editar reglas de notificación, seleccione la pestaña Reglas de transformación de aceptación y haga clic en Agregar regla para iniciar el Asistente para reglas.
En la página Seleccionar plantillas de regla, en Plantilla de regla de notificación, seleccione Pasar a través o filtrar una notificación entrante en la lista y, a continuación, haga clic en Siguiente.
En la página Configurar regla, en Nombre de regla de notificación, escriba el nombre para mostrar de esta regla. En Tipo de notificación entrante, escriba la siguiente dirección URL de tipo de notificación y seleccione Pasar a través todos los valores de notificaciones.
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip
Para comprobar la regla, selecciónela en la lista y haga clic en Editar regla. A continuación, haga clic en Ver lenguaje de reglas. El lenguaje de la regla de notificación debe aparecer de la siguiente manera:
c:[Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip"] => issue(claim = c);
Haga clic en Finish.
En el cuadro de diálogo Editar reglas de notificación, haga clic en Aceptar para guardar las reglas.
Repita los pasos del 2 al 6 para crear una regla de notificación adicional para cada uno de los cuatro tipos de notificación restantes que se muestran a continuación, hasta que se hayan creado las cinco reglas.
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-user-agent
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy
https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path
Paso 3: Actualización de la relación de confianza para usuario autenticado de la Plataforma de identidad de Microsoft Office 365
Elija uno de los siguientes escenarios de ejemplo para configurar las reglas de notificación de la relación de confianza para usuario autenticado de la Plataforma de identidad de Microsoft Office 365 que mejor satisfaga las necesidades de su organización.
Escenarios de directiva de acceso de cliente para AD FS 2.0
En las secciones siguientes se describen los escenarios que existen para AD FS 2.0.
Escenario 1: Bloqueo de todo el acceso externo a Office 365
Este escenario de directiva de acceso de cliente permite el acceso desde todos los clientes internos y bloquea todos los clientes externos en función de la dirección IP del cliente externo. El conjunto de reglas se basa en la regla de autorización de emisión predeterminada Permitir el acceso a todos los usuarios. Utilice el siguiente procedimiento para agregar una regla de autorización de emisión a la relación de confianza para usuario autenticado de Office 365.
Para crear una regla que bloquee todo el acceso externo a Office 365
- Haga clic en Inicio, seleccione Programas, Herramientas administrativas y elija Administración de AD FS 2.0.
- En el árbol de consola, en AD FS 2.0\Relaciones de confianza, haga clic en Veracidades de usuarios de confianza, haga clic con el botón derecho en la confianza Plataforma de identidad de Microsoft Office 365 y, después, haga clic en Editar reglas de notificación.
- En el cuadro de diálogo Editar reglas de notificación, seleccione la pestaña Reglas de autorización de emisión y, después, haga clic en Agregar regla para iniciar el asistente para reglas de notificación.
- En la página Seleccionar plantilla de regla, en Plantilla de regla de notificación, seleccione Enviar notificaciones con una regla personalizada y haga clic en Siguiente.
- En la página Configurar regla, en Nombre de regla de notificación, escriba el nombre para mostrar de esta regla. En Regla personalizada, escriba o pegue la siguiente sintaxis del lenguaje de reglas de notificación:
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
- Haga clic en Finish. Compruebe que la nueva regla aparece inmediatamente debajo de la regla Permitir el acceso a todos los usuarios en la lista Reglas de autorización de emisión.
- Para guardar la regla, en el cuadro de diálogo Editar reglas de notificación, haga clic en Aceptar.
Nota
Tendrá que reemplazar el valor anterior de “public ip address regex" por una expresión IP válida. Consulte Creación de la expresión de intervalo de direcciones IP para obtener más información.
Escenario 2: Bloqueo de todo el acceso externo a Office 365 excepto el de Exchange ActiveSync
En el ejemplo siguiente se permite el acceso a todas las aplicaciones de Office 365, incluida Exchange Online, desde clientes internos, incluido Outlook. Bloquea el acceso de los clientes que residen fuera de la red corporativa, como indica la dirección IP del cliente, excepto los clientes de Exchange ActiveSync, como smartphones. El conjunto de reglas se basa en la regla de autorización de emisión predeterminada, que se denomina Permitir el acceso a todos los usuarios. Siga los pasos que se indican a continuación para agregar una regla de autorización de emisión a la relación de confianza para usuario autenticado de Office 365 con el asistente para reglas de notificación:
Para crear una regla que bloquee todo el acceso externo a Office 365
- Haga clic en Inicio, seleccione Programas, Herramientas administrativas y elija Administración de AD FS 2.0.
- En el árbol de consola, en AD FS 2.0\Relaciones de confianza, haga clic en Veracidades de usuarios de confianza, haga clic con el botón derecho en la confianza Plataforma de identidad de Microsoft Office 365 y, después, haga clic en Editar reglas de notificación.
- En el cuadro de diálogo Editar reglas de notificación, seleccione la pestaña Reglas de autorización de emisión y, después, haga clic en Agregar regla para iniciar el asistente para reglas de notificación.
- En la página Seleccionar plantilla de regla, en Plantilla de regla de notificación, seleccione Enviar notificaciones con una regla personalizada y haga clic en Siguiente.
- En la página Configurar regla, en Nombre de regla de notificación, escriba el nombre para mostrar de esta regla. En Regla personalizada, escriba o pegue la siguiente sintaxis del lenguaje de reglas de notificación:
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application", Value=="Microsoft.Exchange.Autodiscover"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application", Value=="Microsoft.Exchange.ActiveSync"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
- Haga clic en Finish. Compruebe que la nueva regla aparece inmediatamente debajo de la regla Permitir el acceso a todos los usuarios en la lista Reglas de autorización de emisión.
- Para guardar la regla, en el cuadro de diálogo Editar reglas de notificación, haga clic en Aceptar.
Nota
Tendrá que reemplazar el valor anterior de “public ip address regex" por una expresión IP válida. Consulte Creación de la expresión de intervalo de direcciones IP para obtener más información.
Escenario 3: Bloqueo de todo el acceso externo a Office 365 excepto el de las aplicaciones basadas en explorador
El conjunto de reglas se basa en la regla de autorización de emisión predeterminada, que se denomina Permitir el acceso a todos los usuarios. Siga los pasos que se indican a continuación para agregar una regla de autorización de emisión a la relación de confianza para usuario autenticado de la Plataforma de identidad de Microsoft Office 365 con el asistente para reglas de notificación:
Nota
Este escenario no se admite con un proxy de terceros debido a limitaciones en los encabezados de directiva de acceso de cliente con solicitudes pasivas (basadas en web).
Para crear una regla que bloquee todo el acceso externo a Office 365 excepto a las aplicaciones basadas en explorador
- Haga clic en Inicio, seleccione Programas, Herramientas administrativas y elija Administración de AD FS 2.0.
- En el árbol de consola, en AD FS 2.0\Relaciones de confianza, haga clic en Veracidades de usuarios de confianza, haga clic con el botón derecho en la confianza Plataforma de identidad de Microsoft Office 365 y, después, haga clic en Editar reglas de notificación.
- En el cuadro de diálogo Editar reglas de notificación, seleccione la pestaña Reglas de autorización de emisión y, después, haga clic en Agregar regla para iniciar el asistente para reglas de notificación.
- En la página Seleccionar plantilla de regla, en Plantilla de regla de notificación, seleccione Enviar notificaciones con una regla personalizada y haga clic en Siguiente.
- En la página Configurar regla, en Nombre de regla de notificación, escriba el nombre para mostrar de esta regla. En Regla personalizada, escriba o pegue la siguiente sintaxis del lenguaje de reglas de notificación:
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path", Value == "/adfs/ls/"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
- Haga clic en Finish. Compruebe que la nueva regla aparece inmediatamente debajo de la regla Permitir el acceso a todos los usuarios en la lista Reglas de autorización de emisión.
- Para guardar la regla, en el cuadro de diálogo Editar reglas de notificación, haga clic en Aceptar.
Escenario 4: Bloqueo todo el acceso externo a Office 365 de grupos de Active Directory designados
En el ejemplo siguiente se habilita el acceso desde clientes internos en función de la dirección IP. Bloquea el acceso de los clientes que residen fuera de la red corporativa que tienen una dirección IP de cliente externo, excepto los usuarios de un grupo de Active Directory especificado. El conjunto de reglas se basa en la regla de autorización de emisión predeterminada Permitir el acceso a todos los usuarios. Siga los pasos que se indican a continuación para agregar una regla de autorización de emisión a la relación de confianza para usuario autenticado de la Plataforma de identidad de Microsoft Office 365 con el asistente para reglas de notificación:
Para crear una regla que bloquee todo el acceso externo a Office 365 para grupos de Active Directory designados
- Haga clic en Inicio, seleccione Programas, Herramientas administrativas y elija Administración de AD FS 2.0.
- En el árbol de consola, en AD FS 2.0\Relaciones de confianza, haga clic en Veracidades de usuarios de confianza, haga clic con el botón derecho en la confianza Plataforma de identidad de Microsoft Office 365 y, después, haga clic en Editar reglas de notificación.
- En el cuadro de diálogo Editar reglas de notificación, seleccione la pestaña Reglas de autorización de emisión y, después, haga clic en Agregar regla para iniciar el asistente para reglas de notificación.
- En la página Seleccionar plantilla de regla, en Plantilla de regla de notificación, seleccione Enviar notificaciones con una regla personalizada y haga clic en Siguiente.
- En la página Configurar regla, en Nombre de regla de notificación, escriba el nombre para mostrar de esta regla. En Regla personalizada, escriba o pegue la siguiente sintaxis del lenguaje de reglas de notificación:
exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy"]) && exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value =~ "Group SID value of allowed AD group"]) && NOT exists([Type == "https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip", Value=~"customer-provided public ip address regex"]) => issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "true");
- Haga clic en Finish. Compruebe que la nueva regla aparece inmediatamente debajo de la regla Permitir el acceso a todos los usuarios en la lista Reglas de autorización de emisión.
- Para guardar la regla, en el cuadro de diálogo Editar reglas de notificación, haga clic en Aceptar.
Descripción de la sintaxis del lenguaje de reglas de notificación que se usa en los escenarios anteriores
Descripción | Sintaxis del lenguaje de reglas de notificación |
---|---|
Regla predeterminada de AD FS Permitir el acceso a todos los usuarios. Esta regla ya debe existir en la lista de reglas de autorización de emisión de la relación de confianza para usuario autenticado de la Plataforma de identidad de Microsoft Office 365. | => issue(Type = "<https://schemas.microsoft.com/authorization/claims/permit>", Value = "true") ; |
Si se agrega esta cláusula a una nueva regla personalizada, especifica que la solicitud procede del proxy del servidor de federación (es decir, tiene el encabezado x-ms-proxy). | |
Se recomienda que todas las reglas incluyan esto. | exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-proxy>"] ) |
Se usa para establecer que la solicitud procede de un cliente con una dirección IP en el intervalo aceptable definido. | NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-forwarded-client-ip>", Value=~"customer-provided public ip address regex"]) |
Esta cláusula se usa para especificar que, si la aplicación a la que se accede no es Microsoft.Exchange.ActiveSync, se debe denegar la solicitud. | NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-client-application>", Value=="Microsoft.Exchange.ActiveSync"]) |
Esta regla permite determinar si la llamada se ha realizado a través de un explorador web y, en ese caso, no se deniega. | NOT exists([Type == "<https://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path>", Value == "/adfs/ls/"]) |
Esta regla indica que solo se debe denegar el acceso a los usuarios de un grupo de Active Directory determinado (en función del SID). Si se agrega NOT a esta instrucción, significa que se permite el acceso de un grupo de usuarios, independientemente de la ubicación. | exists([Type == "<https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid>", Value =~ "{Group SID value of allowed AD group}"]) |
Esta es una cláusula obligatoria para emitir una denegación cuando se cumplen todas las condiciones anteriores. | => issue(Type = "<https://schemas.microsoft.com/authorization/claims/deny>", Value = "true"); |
Creación de la expresión de intervalo de direcciones IP
La notificación x-ms-forwarded-client-ip se rellena a partir de un encabezado HTTP que actualmente solo lo establece Exchange Online, que rellena el encabezado cuando pasa la solicitud de autenticación a AD FS. El valor de la notificación puede ser uno de los siguientes:
Nota
Actualmente Exchange Online solo admite direcciones IPV4, no IPV6.
Una sola dirección IP: la dirección IP del cliente que está conectado directamente a Exchange Online
Nota
La dirección IP de un cliente en la red corporativa aparece como la dirección IP de la interfaz externa del proxy de salida o la puerta de enlace de la organización.
Los clientes conectados a la red corporativa con una red VPN o Microsoft DirectAccess (DA) pueden aparecer como clientes corporativos internos o como clientes externos en función de la configuración de la red VPN o de DA.
Una o varias direcciones IP: cuando Exchange Online no puede determinar la dirección IP del cliente que se conecta, establece el valor en función del valor del encabezado x-forwarded-for, un encabezado no estándar que se puede incluir en las solicitudes basadas en HTTP y que es compatible con muchos clientes, equilibradores de carga y servidores proxy del mercado.
Nota
Varias direcciones IP, que indican la dirección IP del cliente y la dirección de cada proxy que ha pasado la solicitud, se separarán con comas.
Las direcciones IP relacionadas con la infraestructura de Exchange Online no aparecen en la lista.
Expresiones regulares
Cuando hay que cotejar un intervalo de direcciones IP, es necesario construir una expresión regular para hacer la comparación. En la siguiente serie de pasos, se proporcionan ejemplos de cómo construir dicha expresión para que busque coincidencias con los siguientes intervalos de direcciones (tenga en cuenta que tendrá que cambiar estos ejemplos para que coincidan con su intervalo IP público):
- 192.168.1.1 – 192.168.1.25
- 10.0.0.1 – 10.0.0.14
En primer lugar, el patrón básico que coteja una sola dirección IP es el siguiente: \b###.###.###.###\b.
Si lo ampliamos, podemos cotejar dos direcciones IP diferentes con una expresión OR de la siguiente manera: \b###.###.###.###\b|\b###.###.###.###\b
Por tanto, un ejemplo para cotejar solo dos direcciones (como 192.168.1.1 o 10.0.0.1) sería: \b192.168.1.1\b|\b10.0.0.1\b.
Esto proporciona la técnica con la que se puede proporcionar cualquier número de direcciones. Cuando es necesario permitir un intervalo de direcciones, por ejemplo, 192.168.1.1 - 192.168.1.25, la comparación debe realizarse carácter por carácter: \b192.168.1.([1-9]|1[0-9]|2[0-5])\b.
Nota
La dirección IP se trata como una cadena, no como un número.
La regla se desglosa de la siguiente manera: \b192.168.1.
Esto busca cualquier valor que empiece con 192.168.1.
Lo siguiente busca los intervalos necesarios para la parte de la dirección después del separador decimal final:
- ([1-9] busca direcciones que terminan en 1-9.
- |1[0-9] busca direcciones que terminan en 10-19.
- |2[0-5]) busca direcciones que terminan en 20-25.
Nota
Los paréntesis deben colocarse correctamente, de modo que no se empiece a comparar otras partes de las direcciones IP.
Si el bloque 192 coincide, podemos escribir una expresión similar para el bloque 10: \b10.0.0.([1-9]|1[0-4])\b.
Al juntarlos, la siguiente expresión debe buscar todas las direcciones "192.168.1.1~25" y "10.0.0.1~14": \b192.168.1.([1-9]|1[0-9]|2[0-5])\b|\b10.0.0.([1-9]|1[0-4])\b.
Prueba de la expresión
Las expresiones regex pueden llegar a ser bastante complejas, por lo que se recomienda encarecidamente usar una herramienta de comprobación de expresiones regex. Si busca "generador de expresiones regex en línea" en Internet, encontrará varias utilidades en línea buenas que le permitirán probar las expresiones con datos de ejemplo.
Al probar una expresión, es importante que tenga claro lo que se espera que coincida. Exchange Online puede enviar muchas direcciones IP separadas por comas. Las expresiones proporcionadas aquí funcionarán para esto. Sin embargo, es importante tener esto en cuenta cuando se prueban expresiones regex. Por ejemplo, puede usar la siguiente entrada de ejemplo para comprobar los ejemplos anteriores:
192.168.1.1, 192.168.1.2, 192.169.1.1. 192.168.12.1, 192.168.1.10, 192.168.1.25, 192.168.1.26, 192.168.1.30, 1192.168.1.20
10.0.0.1, 10.0.0.5, 10.0.0.10, 10.0.1.0, 10.0.1.1, 110.0.0.1, 10.0.0.14, 10.0.0.15, 10.0.0.10, 10,0.0.1
Validación de la implementación
Registros de auditoría de seguridad
Para comprobar que se envían las nuevas notificaciones de contexto de solicitud y que están disponibles para la canalización de procesamiento de notificaciones de AD FS, habilite el registro de auditoría en el servidor de AD FS. A continuación, envíe algunas solicitudes de autenticación y compruebe los valores de notificación en las entradas del registro de auditoría de seguridad estándar.
Para habilitar el registro de eventos de auditoría en el registro de seguridad en un servidor de AD FS, siga los pasos que se indican en Configuración de la auditoría para AD FS 2.0.
Registro de eventos
De forma predeterminada, las solicitudes que no progresan se recogen en el registro de eventos de la aplicación, en Applications and Services Logs\AD FS 2.0\Admin. Para más información sobre el registro de eventos para AD FS, consulte Configuración del registro de eventos de AD FS 2.0.
Configuración de registros de seguimiento detallados de AD FS
Los eventos de seguimiento de AD FS se recogen en el registro de depuración de AD FS 2.0. Para habilitar el seguimiento, consulte Configuración del seguimiento de depuración para AD FS 2.0.
Cuando haya habilitado el seguimiento, utilice la siguiente sintaxis de la línea de comandos para habilitar el nivel de registro detallado: wevtutil.exe sl “AD FS 2.0 Tracing/Debug” /l:5
Temas relacionados
Para obtener más información sobre los nuevos tipos de notificaciones, consulte Tipos de notificación de directiva de acceso de cliente en AD FS.