Compartir a través de


Cuándo usar una regla de envío de atributos LDAP como notificaciones

Puede usar esta regla en servicios de federación de Active Directory (AD FS) cuando quiera emitir notificaciones salientes que contengan valores de atributo del Protocolo ligero de acceso a directorios (LDAP) reales que existen en un almacén de atributos y, a continuación, asociar un tipo de notificación con cada uno de los atributos LDAP. Para obtener más información sobre los almacenes de atributos, vea El rol de los almacenes de atributos.

Al usar esta regla, se emite una notificación para cada atributo LDAP que especifique y que coincida con la lógica de la regla, como se describe en la tabla siguiente.

Opción de regla Lógica de reglas
Asignación de atributos LDAP a tipos de notificación saliente Si el almacén de atributos es igual al almacén de atributos especificado y el atributo LDAP es igual al valor especificado, asigne el valor del atributo LDAP al tipo de notificación saliente especificado y emita la notificación.

En las secciones siguientes se proporciona una introducción básica a las reglas de notificación. También se proporcionan detalles sobre cuándo se debe usar le regla de envío de atributos LDAP como notificaciones.

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.

Asignación de atributos LDAP a tipos de notificación saliente

Al utilizar la plantilla de regla de envío de atributos LDAP como notificaciones, puede seleccionar atributos de un almacén de atributos LDAP, como Active Directory o los Servicios de dominio de Active Directory (AD DS) para enviar sus valores como notificaciones al usuario de confianza. Esto esencialmente asigna atributos LDAP específicos de un almacén de atributos que defines a un conjunto de afirmaciones salientes que se pueden usar para la autorización.

Con esta plantilla, puede agregar varios atributos, que se enviarán como varias declaraciones, desde una sola regla. Por ejemplo, puede usar esta plantilla de regla para crear una regla que buscará valores de atributo para los usuarios autenticados de los atributos compañía y departamento de Active Directory y, después, enviará estos valores como dos notificaciones salientes diferentes.

También puede usar esta regla para enviar todas las afiliaciones de grupo del usuario. Si desea enviar solo pertenencias a grupos individuales, use la plantilla de regla de envío de pertenencia a grupos como una notificación. Para obtener más información, vea Cuándo usar una pertenencia a un grupo de envío como regla de reclamación.

Creación de esta regla

Esta regla se crea mediante el lenguaje de reglas de notificación o la plantilla de regla de envío de atributos LDAP como notificaciones en el complemento de administración de AD FS. Esta plantilla de regla proporciona las siguientes opciones de configuración:

  • Especificar un nombre de regla de reclamación

  • Selección de un almacén de atributos desde el que se van a extraer atributos LDAP

  • Asignación de atributos LDAP a tipos de notificación saliente

Para obtener más información sobre cómo crear esta regla, vea Crear una regla para enviar atributos LDAP como notificaciones.

Uso del lenguaje de las reglas de notificación

Si la consulta a Active Directory, AD DS o Active Directory Lightweight Directory Services (AD LDS) debe compararse con un atributo LDAP distinto de samAccountname, debe usar una regla personalizada en su lugar. Si no hay ninguna notificación de nombre de cuenta de Windows en el conjunto de entrada, también debe usar una regla personalizada para especificar la notificación que se usará para consultar AD DS o AD LDS.

Los siguientes ejemplos se proporcionan para ayudarle a comprender algunas de las diversas maneras de construir una regla personalizada mediante el lenguaje de reglas de reclamaciones para consultar y extraer datos en un almacén de atributos.

Ejemplo: Cómo consultar un almacén de atributos de AD LDS y devolver un valor especificado

Los parámetros deben estar separados por punto y coma. El primer parámetro es el filtro LDAP. Los parámetros posteriores son los atributos que se van a devolver en los objetos coincidentes.

En el ejemplo siguiente se muestra cómo buscar un usuario mediante el atributo sAMAccountName y emitir una notificación de dirección de correo electrónico mediante el valor del atributo de correo del usuario:

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "AD LDS", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = "sAMAccountName={0};mail", param = regexreplace(c.Value, "(?<domain>[^\\]+)\\(?<user>.+)", "${user}"));

En el siguiente ejemplo se muestra cómo buscar un usuario por el atributo mail y emitir las reclamaciones Title y Display Name, utilizando los valores de los atributos title y displayname del usuario:

c:[Type == " http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress ", Issuer == "AD AUTHORITY"]
=> issue(store = "AD LDS ", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/title","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/displayname"), query = "mail={0};title;displayname", param = c.Value);

En el ejemplo siguiente se muestra cómo buscar un usuario por el correo y el título y, luego, se emite una notificación de nombre para mostrar usando el atributo displayname del usuario:

c1:[Type == " http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] && c2:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/title"]
=> issue(store = "AD LDS ", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/displayname"), query = "(&(mail={0})(title={1}));displayname", param = c1.Value, param = c2.Value);

Ejemplo: Cómo consultar un almacén de atributos de Active Directory y devolver un valor especificado

La consulta de Active Directory debe incluir el nombre del usuario (con el nombre de dominio) como parámetro final para que el almacén de atributos de Active Directory pueda consultar el dominio correcto. De lo contrario, se admite la misma sintaxis.

En el ejemplo siguiente se muestra cómo buscar un usuario mediante el atributo sAMAccountName en su dominio y, a continuación, devolver el atributo mail :

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = "sAMAccountName={0};mail;{1}", param = regexreplace(c.Value, "(?<domain>[^\\]+)\\(?<user>.+)", "${user}"), param = c.Value);

Ejemplo: Consulta de un almacén de atributos de Active Directory basado en el valor de una notificación entrante

c:[Type == "http://test/name"]

   => issue(store = "Enterprise AD Attribute Store",

         types = ("http://test/email"),

         query = ";mail;{0}",

         param = c.Value)

La consulta anterior consta de las tres partes siguientes:

  • Filtro LDAP: especifique esta parte de la consulta para recuperar los objetos para los que desea consultar los atributos. Para obtener información general sobre las consultas LDAP válidas, consulte RFC 2254. Al consultar un almacén de atributos de Active Directory y no se especifica un filtro LDAP, se asume la consulta samAccountName={0} y el almacén de atributos de Active Directory espera un parámetro que pueda alimentar el valor de {0}. De lo contrario, la consulta producirá un error. En el caso de un almacén de atributos LDAP distinto de Active Directory, no se puede omitir la parte del filtro LDAP de la consulta o la consulta producirá un error.

  • Especificación de atributo: en esta segunda parte de la consulta, se especifican los atributos (separados por comas si se usan varios valores de atributo) que desea salir de los objetos filtrados. El número de atributos que especifique debe coincidir con el número de tipos de reclamación que defina en la consulta.

  • Dominio de Active Directory: especifica la última parte de la consulta solo cuando el almacén de atributos es Active Directory. (No es necesario cuando se consultan otros almacenes de atributos). Esta parte de la consulta se usa para especificar la cuenta de usuario en el dominio de formulario\name. El almacén de atributos de Active Directory usa la parte de dominio para determinar el controlador de dominio adecuado para conectarse y ejecutar la consulta y solicitar los atributos.

Ejemplo: Uso de dos reglas personalizadas para extraer el correo electrónico del administrador de un atributo en Active Directory

Las dos reglas personalizadas siguientes, cuando se usan juntas en el orden que se muestra a continuación, consulte Active Directory para el atributo manager de la cuenta de usuario (Regla 1) y, a continuación, use ese atributo para consultar la cuenta de usuario del administrador para el atributo de correo (Regla 2). Por último, el atributo mail se emite como una declaración de "ManagerEmail". En resumen, la regla 1 consulta Active Directory y pasa el resultado de la consulta a la regla 2, que luego extrae los valores de correo electrónico del administrador.

Por ejemplo, cuando estas reglas terminan de ejecutarse, se emite una notificación que contiene la dirección de correo electrónico del administrador para un usuario del dominio corp.fabrikam.com.

Regla 1

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
=> add(store = "Active Directory", types = ("http://schemas.xmlsoap.org/claims/ManagerDistinguishedName"), query = "sAMAccountName=
{0};mail,userPrincipalName,extensionAttribute5,manager,department,extensionAttribute2,cn;{1}", param = regexreplace(c.Value, "(?
<domain>[^\\]+)\\(?<user>.+)", "${user}"), param = c.Value);

Regla 2

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
&& c1:[Type == "http://schemas.xmlsoap.org/claims/ManagerDistinguishedName"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/claims/ManagerEmail"), query = "distinguishedName={0};mail;{1}", param = c1.Value,
param = regexreplace(c1.Value, ".*DC=(?<domain>.+),DC=corp,DC=fabrikam,DC=com", "${domain}\username"));

Nota:

Estas reglas solo funcionan si el administrador del usuario está en el mismo dominio que el usuario (corp.fabrikam.com en este ejemplo).

Referencias adicionales

Crear una regla para enviar atributos LDAP como notificaciones