Cuándo usar una regla de notificación de autorización

Puede usar esta regla en los Servicios de federación de Active Directory (AD FS) cuando necesite tomar un tipo de reclamación entrante y, a continuación, aplicar una acción que determine si se permitirá o denegará el acceso a un usuario en función del valor que especifique en la regla. Cuando usas esta regla, transformas o pasas por las notificaciones que coinciden con la lógica de la regla siguiente, según cualquiera de las opciones de que configuración de la regla:

Opción de regla Lógica de reglas
Permitir a todos los usuarios Si el tipo de reclamación entrante es igual a cualquier tipo de reclamación y el valor es igual a cualquier valor, entonces emita la reclamación con valor igual a Permitir.
Permitir acceso a los usuarios con esta notificación entrante Si el tipo de notificación entrante es igual al tipo de notificación especificado y el valor es igual al valor de notificación especificado, emita la notificación con el valor igual a Permitir.
Denegar el acceso a los usuarios con esta reclamación entrante Si el tipo de notificación entrante es igual al tipo de notificación especificado y el valor es igual al valor de notificación especificado, emita la notificación con un valor igual a Deny.

En las secciones siguientes se proporciona una introducción básica a las reglas de notificación y se proporcionan más detalles sobre cuándo usar esta regla.

Acerca de las reglas de reclamación

Una regla de notificación representa una instancia de lógica de negocios que tomará una notificación entrante, le aplicará una condición (si x then y) y generará una notificación saliente basada en los parámetros de condición. En la lista siguiente se describen sugerencias importantes que debe conocer sobre las reglas de notificación antes de leer más en este tema:

  • En el complemento de administración de AD FS, solo se pueden crear reglas de notificación mediante plantillas de regla de notificación.

  • Las reglas de notificaciones procesan las reclamaciones entrantes directamente desde un proveedor de notificaciones (por ejemplo, Active Directory u otro Servicio de federación) o desde la salida de las reglas de transformación de aceptación de la confianza de proveedor de notificaciones.

  • El motor de emisión de reclamaciones procesa las reglas de reclamaciones en orden cronológico dentro de un conjunto de reglas determinado. Al establecer precedencia sobre las reglas, puede refinar o filtrar aún más las afirmaciones generadas por reglas anteriores dentro de un conjunto de reglas determinado.

  • Las plantillas de reglas de reclamación siempre requerirán que especifique un tipo de reclamación entrante. Sin embargo, puede procesar varios valores de reclamación con el mismo tipo de reclamación mediante una sola regla.

Para obtener información más detallada sobre las reglas de notificación y los conjuntos de reglas de notificaciones, vea El rol de reglas de notificación. Para obtener más información sobre cómo se procesan las reglas, consulte El rol del motor de notificaciones. Para obtener más información sobre cómo se procesan los conjuntos de reglas de notificación, consulte El rol de la canalización de notificaciones.

Permitir todos los usuarios

Cuando usas la plantilla de regla Permitir a todos los usuarios, todos los usuarios tendrán acceso al usuario de confianza. Sin embargo, puedes usar reglas de autorización adicionales para restringir aún más el acceso. Si una regla permite a un usuario tener acceso al usuario de confianza y otra regla deniega a un usuario el acceso al usuario de confianza, el resultado de denegación invalida al resultado de autorización y se le deniega el acceso al usuario.

Aún así, es posible que los usuarios que tienen permiso de acceso al usuario de confianza por parte del Servicio de federación tengan el acceso denegado por parte del usuario de confianza.

Permitir acceso a los usuarios con esta notificación entrante

Cuando se usa la plantilla de la regla "Permitir o denegar a los usuarios en función de una notificación entrante" para crear una regla y establecer la condición de permiso, puede permitir el acceso de usuarios específicos al usuario de confianza según el tipo y el valor de una notificación entrante. Por ejemplo, puedes usar esta plantilla de reglas para crear una regla que solo dé permiso a los usuarios que tienen un grupo de notificaciones con el valor de Admins. del dominio. Si una regla permite a un usuario tener acceso al usuario de confianza y otra regla deniega a un usuario el acceso al usuario de confianza, el resultado de denegación invalida al resultado de autorización y se le deniega el acceso al usuario.

Aún así, es posible que los usuarios que tienen permiso para acceder al usuario de confianza por parte del Servicio de federación tengan el acceso denegado por parte del usuario de confianza. Si quieres permitir a todos los usuarios tener acceso al usuario de confianza, usa la plantilla de regla Permitir a todos los usuarios.

Denegar el acceso a los usuarios con esta reclamación entrante

Cuando se usa la plantilla de la regla "Permitir o denegar a los usuarios en función de una notificación entrante" para crear una regla y establecer la condición de denegación, puede denegar a un usuario el acceso al usuario de confianza según el tipo y el valor de una notificación entrante. Por ejemplo, puedes usar esta plantilla de reglas para crear una regla que deniegue el acceso a todos los usuarios que tienen un grupo de notificaciones con el valor de Usuarios del dominio.

Si quieres usar la condición de denegación pero también habilitar el acceso al usuario de confianza a unos usuarios específicos, más adelante tienes que agregar explícitamente las reglas de autorización con la condición de permisión para permitir el acceso de esos usuarios al usuario de confianza.

Si un usuario tiene el acceso denegado cuando el motor de emisión de notificaciones procesa el conjunto de reglas, se apaga el procesamiento de más reglas y AD FS devuelve un error de "Acceso denegado" a la solicitud del usuario.

Autorización de usuarios

En AD FS, se usan reglas de autorización para emitir una notificación de permiso o denegación que determinará si un usuario o un grupo de usuarios (dependiendo del tipo de notificación usado) tendrán o no tendrán acceso a los recursos basados en web de un determinado usuario de confianza. Las reglas de autorización solo se pueden establecer en relaciones de confianza para usuario autenticado.

Conjuntos de reglas de autorización

Existen diferentes conjuntos de reglas de autorización según el tipo de operaciones de permiso o denegación que tengas que configurar. Estos conjuntos de reglas incluyen:

  • Reglas de autorización de emisión: estas reglas determinan si un usuario puede recibir notificaciones para un usuario de confianza y, por lo tanto, acceder al usuario de confianza.

  • Reglas de autorización de delegación: estas reglas determinan si un usuario puede actuar como otro usuario para el usuario de confianza. Cuando un usuario está actuando como otro usuario, las notificaciones sobre el usuario solicitante todavía están ubicadas en el token.

  • Reglas de autorización de suplantación: estas reglas determinan si un usuario puede suplantar completamente a otro usuario al usuario de confianza. El suplantar a otro usuario es una capacidad muy eficaz, ya que el usuario de confianza no sabrá que se está suplantando al usuario.

Para obtener más información sobre cómo encaja el proceso de las regla de autorización en la canalización de emisión de notificaciones, consulta «El papel del Motor de emisión de notificaciones».

Tipos de notificaciones admitidos

AD FS define dos tipos de notificaciones que se usan para determinar si se permite o deniega un usuario. Estos tipos de notificación de Identificadores uniformes de recursos (URI) son:

  1. Permiso: http://schemas.microsoft.com/authorization/claims/permit

  2. Denegar: http://schemas.microsoft.com/authorization/claims/deny

Creación de esta regla

Puede crear ambas reglas de autorización usando tanto el lenguaje de reglas de notificación como la plantilla de la regla Permitir a todos los usuarios o la plantilla de la regla Permitir o denegar a usuarios según la notificación entrante en el complemento de administración de AD FS. La plantilla de reglas «Permitir a todos los usuarios» no proporciona ninguna opción de configuración. Sin embargo, la plantilla de reglas «Permitir o denegar a los usuarios según una notificación entrante» proporciona las siguientes opciones de configuración:

  • Especificar un nombre de regla de reclamación

  • Especificar un tipo de notificación entrante

  • Escribir un valor de notificación entrante

  • Permitir acceso a los usuarios con esta notificación entrante

  • Denegar el acceso a los usuarios con esta reclamación entrante

Para más instrucciones sobre cómo crear esta plantilla, consulte Crear una regla para permitir a todos los usuarios o Crear una regla para permitir o denegar usuarios según una notificación entrante en la guía de implementación de AD FS.

Uso del lenguaje de las reglas de notificación

Si una notificación solo se debe enviar cuando el valor de la notificación coincide con un patrón personalizado, debe usar una regla personalizada. Para obtener más información, vea Cuándo usar una regla de notificación personalizada.

Ejemplo de cómo crear una regla de autorización basada en notificaciones múltiples

Cuando se usa la sintaxis del lenguaje de reglas de notificación para autorizar notificaciones, también se puede emitir una notificación basada en la presencia de notificaciones múltiples en las solicitudes originales del usuario. La siguiente regla emite solo una notificación de autorización si el usuario es miembro del grupo de Editores y se ha autenticado mediante la autenticación de Windows:

[type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod",
value == "urn:federation:authentication:windows" ]
&& [type == "http://schemas.xmlsoap.org/claims/Group ", value == "editors"]
=> issue(type = "http://schemas.xmlsoap.org/claims/authZ", value = "Granted");

Ejemplo de cómo crear reglas de autorización que deleguen quién puede crear o eliminar las relaciones de confianza del servidor proxy de federación

Antes de que un Servicio de federación pueda usar un servidor proxy de federación para redirigir las solicitudes de cliente, primero tiene que establecerse una relación de confianza entre el Servicio de federación y el equipo del servidor proxy de federación. De forma predeterminada, se establece una relación de confianza de proxy cuando alguna de las siguientes credenciales se proporciona correctamente en el Asistente para la configuración del proxy del servidor de federación AD FS:

  • La cuenta de servicio que usó el Servicio de federación y que protegerá el proxy

  • Una cuenta de dominio de Active Directory que sea miembro del grupo local de Administradores en todos los servidores de federación de una granja de servidores de federación

Si quieres especificar qué usuario o usuarios pueden crear una confianza de proxy para un Servicio de federación determinado, puedes usar cualquiera de los siguientes métodos de delegación. Esta lista de métodos está en orden de prioridad según las recomendaciones del equipo de producto de AD FS de los métodos de delegación más seguros y menos problemáticos. Es necesario usar solo uno de estos métodos, según las necesidades de tu empresa:

  1. Crea un grupo de seguridad de dominio en Active Directory (por ejemplo, FSProxyTrustCreators), agrega este grupo al grupo de local de Administradores en todos los servidores de federación de la granja y después agrega solo las cuentas de usuario a las que quieres delegar este derecho al nuevo grupo. Este es el método preferido.

  2. Agregue la cuenta de dominio del usuario al grupo de administradores en todos los servidores de federación de la granja.

  3. Si por algún motivo no puedes usar cualquiera de estos métodos, también puedes crear una regla de autorización para este propósito. Aunque no es lo recomendado (debido a posibles complicaciones que pueden producirse si no se escribe correctamente esta regla), puedes usar una regla de autorización personalizada para delegar qué cuentas de usuario de dominio de Active Directory también pueden crear o incluso eliminar las confianzas entre todos los servidores proxy de federación que estén asociados a un Servicio de federación determinado.

    Si eliges el método 3, puedes usar la siguiente sintaxis de regla para emitir una notificación de autorización que permitirá al usuario especificado (en este caso, contoso\frankm) crear confianzas para uno o varios servidores proxy de federación para el Servicio de federación. Debe aplicar esta regla mediante el comando de Windows PowerShell Set-ADFSProperties AddProxyAuthorizationRules.

    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", issuer=~"^AD AUTHORITY$" value == "contoso\frankm" ] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "true")
    
    exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-32-544", Issuer =~ "^AD AUTHORITY$"])
    => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "true");
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid", Issuer =~ "^AD AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustManagerSid({0})", param= c.Value );
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/proxytrustid", Issuer =~ "^SELF AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustProvisioned({0})", param=c.Value );
    

    Más adelante, si quieres eliminar el usuario para que no pueda crear confianzas de proxy, puedes volver a la regla de autorización de confianza de proxy predeterminada para eliminar el derecho del usuario a crear confianzas de proxy para el Servicio de federación. También debe aplicar esta regla mediante el comando de Windows PowerShell Set-ADFSProperties AddProxyAuthorizationRules.

    exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-32-544", Issuer =~ "^AD AUTHORITY$"])
    => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "true");
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid", Issuer =~ "^AD AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustManagerSid({0})", param= c.Value );
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/proxytrustid", Issuer =~ "^SELF AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustProvisioned({0})", param=c.Value );
    

Para obtener más información sobre cómo usar el lenguaje de reglas de reclamaciones, consulte El rol del lenguaje de reglas de reclamaciones.