Compartir a través de


Cuándo usar una regla de reclamación personalizada

Puede escribir una regla de notificación personalizada 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 y filtrar notificaciones mediante programación. Mediante el uso de una regla personalizada, puede crear reglas con una lógica más compleja que una plantilla de regla estándar. Considere la posibilidad de usar una regla personalizada cuando desee:

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

  • Envíe notificaciones basadas en valores extraídos de un almacén de atributos del Protocolo ligero de acceso a directorios (LDAP) mediante un filtro LDAP personalizado.

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

  • Enviar notificaciones solo cuando hay dos o más notificaciones entrantes.

  • Enviar reclamaciones solo cuando un valor de reclamación entrante coincide 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.

  • Construya una notificación saliente a partir del contenido de más de una notificación entrante.

También puede usar una regla personalizada cuando el valor de la reclamación saliente debe basarse en el valor de la reclamación entrante, pero debe incluir además contenido adicional.

El lenguaje de reglas de reclamaciones se basa en normas. Tiene una parte de condición y una parte de ejecución. Puede usar la sintaxis del lenguaje de reglas de afirmaciones para enumerar, agregar, eliminar o modificar afirmaciones para satisfacer las necesidades de su organización. Para obtener más información sobre cómo funciona cada una de estas partes, consulte El rol del lenguaje de reglas de reclamación.

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

Acerca de las reglas de reclamaciones

Una regla de notificación representa una instancia de lógica de negocios que toma una notificación entrante, aplica una condición a ella (si es x, entonces y) y genera una notificación saliente basada en los parámetros de 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 reclamaciones procesa las reglas de reclamaciones en orden cronológico dentro de un conjunto de reglas determinado. Al establecer una precedencia en las reglas, puede refinar o filtrar aún más las reclamaciones generadas por reglas anteriores dentro de un conjunto de reglas determinado.
  • Las plantillas de reglas de notificación siempre requieren que especifique un tipo de notificació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.

Creación de 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 regla proporciona las siguientes opciones:

  • Especificar un nombre de regla de reclamación

  • 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, consulte Creación de una regla para enviar notificaciones mediante una regla personalizada en la Guía de implementación de AD FS.

Para comprender mejor cómo funciona el lenguaje de reglas de reclamaciones, vea la sintaxis del lenguaje de reglas de otras reglas que ya existen en el complemento haciendo clic en la pestaña Ver lenguaje de reglas en las propiedades de esa regla. El uso de la información de esta sección y la información de sintaxis de esta pestaña puede proporcionar información sobre cómo construir sus propias reglas personalizadas.

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

Uso del lenguaje de las reglas de notificación

Ejemplo: Cómo combinar los 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 políticas forma un producto cartesiano de las coincidencias para cada condición. Por ejemplo, la salida 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 asignar una reclamación de administrador según si los usuarios tienen subordinados directos.

La siguiente regla 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 siguiente regla emite una notificación de identificador personal privado (PPID) basada en los atributos windowsaccountname y originalissuer de los usuarios en 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);

Entre los atributos comunes que se pueden usar para identificar de forma única al usuario para esta consulta se incluyen los siguientes:

  • SID de usuario

  • WindowsAccountName

  • samaccountname