Compartir a través de


Cuándo usar una regla de notificación personalizada

Las reglas de notificación personalizadas se escriben en Servicios de federación de Active Directory (AD FS) mediante el lenguaje de reglas de notificación, que es el marco que usa el motor de emisión de notificaciones para generar, transformar, pasar a través y filtrar notificaciones mediante programación. Mediante el uso de una regla personalizada, puedes crear reglas con una lógica más compleja que una plantilla de regla estándar. Considera el uso de una regla personalizada cuando quieras:

  • Enviar notificaciones basadas en valores extraídos de un almacén de atributos del Lenguaje de consulta estructurado (SQL).

  • Enviar notificaciones basadas en valores extraídos de un almacén de atributo del Protocolo ligero de acceso a directorios (LDAP) usando un filtro LDAP personalizado.

  • Enviar notificaciones basadas en valores extraídos de un almacén de atributos personalizado.

  • Enviar notificaciones solo cuando están presentes dos o más notificaciones entrantes.

  • Enviar notificaciones solo cuando un valor de notificación entrante coincida con un patrón complejo.

  • Enviar notificaciones con cambios complejos a un valor de notificación entrante.

  • Crear notificaciones para usarlas solo en reglas más adelante, sin enviar las notificaciones realmente.

  • Construir una notificación saliente desde el contenido de más de una notificación entrante.

También puedes usar una regla personalizada cuando el valor de notificación de la notificación saliente tenga que estar basado en el valor de la solicitud entrante, pero también tenga que incluir contenido adicional.

El lenguaje de reglas de notificación se basa en reglas. Tiene una parte de condición y una parte de ejecución. Puedes usar la sintaxis del lenguaje de reglas de notificación para enumerar, agregar, eliminar o modificar notificaciones para satisfacer las necesidades de tu organización. Para obtener más información sobre cómo funciona cada una de estas partes, vea El papel del lenguaje de reglas de notificación.

Las secciones siguientes ofrecen una introducción básica a las reglas de notificación. También proporcionan detalles sobre cuándo usar una regla de notificación personalizada.

Acerca de las reglas de notificaciones

Una regla de notificación representa una instancia de la lógica de negocios que toma una notificación entrante, le aplicará una condición (si x, entonces y) y generará una notificación saliente basándose en los parámetros de la condición.

Importante

  • En el complemento de administración de AD FS, las reglas de notificación se pueden crear usando plantillas de reglas 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 notificaciones procesa las reglas de notificación en orden cronológico dentro de un conjunto determinado de reglas. Al establecer una prioridad en las reglas puedes afinar o filtrar aún más las notificaciones generadas por las reglas anteriores dentro de un conjunto determinado de reglas.
  • Siempre tienes que especificar un tipo de notificación entrante para las plantillas de regla de notificaciones. Sin embargo, puedes procesar varios valores de notificación con el mismo tipo de notificación usando una sola regla.

Para obtener más información sobre las reglas de notificación y los conjuntos de reglas de notificación, vea El papel de las reglas de notificación. Para 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, vea El papel de la canalización de notificaciones.

Cómo crear esta regla

Esta regla se crea confeccionando primero la sintaxis que se necesita en la operación, usando para ello el lenguaje de reglas de notificación y pegando a continuación el resultado en el cuadro de texto de la plantilla para enviar notificaciones mediante una regla personalizada, que se encuentra en las propiedades de la relación de confianza de un proveedor de notificaciones o de la relación de confianza para usuario autenticado del complemento de administración de AD FS.

Esta plantilla de reglas proporciona las siguientes opciones:

  • Especificar un nombre de regla de notificaciones

  • Escribir una o varias condiciones opcionales y una declaración de emisión mediante el lenguaje de reglas de notificación de AD FS

Para obtener más instrucciones para crear una regla personalizada con esta plantilla, vea Creación de una regla para enviar notificaciones mediante una regla personalizada en la Guía de implementación de AD FS.

Para entender mejor cómo funciona el lenguaje de reglas de notificación, consulta la sintaxis del lenguaje de reglas de notificación de otras reglas que ya existan en el complemento haciendo clic en la pestaña Ver lenguaje de reglas de las propiedades de esa regla. La información de esta sección y la información de la sintaxis de esta ficha pueden proporcionar información sobre cómo construir tus propias reglas personalizadas.

Para obtener más información sobre cómo usar el lenguaje de reglas de notificación, vea El papel del lenguaje de reglas de notificación.

Uso del lenguaje de las reglas de notificación

Ejemplo: Cómo combinar nombres y apellidos en función de los valores de atributo de nombre de un usuario

La sintaxis de regla siguiente combina los nombres y apellidos de los valores de atributo en un almacén de atributos especificado. El motor de directiva forma un producto cartesiano de las coincidencias de todas las condiciones. Por ejemplo, el resultado del nombre {"Frank", "Alan"} y los apellidos {"Miller", "Shen"} es {"Frank Miller", "Frank Shen", "Alan Miller", "Alan Shen"}:

c1:[type == "http://exampleschema/firstname" ]
&&  c2:[type == "http://exampleschema/lastname",]
=> issue(type = "http://exampleschema/name", value = c1.value + "  " + c2.value);

Ejemplo: Cómo emitir una notificación de administrador en función de si los usuarios disponen de informes directos

La regla siguiente emite una notificación de administrador solo si el usuario tiene informes directos:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] => add(store = "SQL Store", types = ("http://schemas.xmlsoap.org/claims/Reports"), query = "SELECT Reports FROM dbo.DirectReports WHERE UserName = {0}", param = c.value );
count([type == "http://schemas.xmlsoap.org/claims/Reports"] ) > 0 => issue(= "http://schemas.xmlsoap.org/claims/ismanager", value = "true");

Ejemplo: Cómo emitir una notificación PPID basada en un atributo LDAP

La regla siguiente emite una notificación de Identificador personal privado (PPID) basada en los atributos windowsaccountname y originalissuer de los usuarios de un almacén de atributos LDAP:

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 => issue(store = "_OpaqueIdStore", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier"), query = "{0};{1};{2}", param = "ppid", param = c.Value, param = c.OriginalIssuer);

Los atributos comunes que se pueden usar para identificar de forma única al usuario para esta consulta incluyen lo siguiente:

  • user SID

  • windowsaccountname

  • samaccountname