Cuándo usar una regla de envío de atributos LDAP como notificaciones
Puede usar esta regla en los Servicios de federación de Active Directory (AD FS) cuan+do desee emitir notificaciones salientes que contengan valores de atributo reales del protocolo ligero de acceso a directorios (LDAP) existentes en un almacén de atributos y luego asociar un tipo de notificación a cada uno de los atributos LDAP. Para más información sobre los almacenes de atributos, consulte El rol de los almacenes de atributos.
Cuando se usa esta regla, se emite una notificación para cada atributo LDAP especificado que coincide con la lógica de la regla, como se describe en la tabla siguiente.
Opción de regla | Lógica de regla |
---|---|
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. |
Las secciones siguientes ofrecen 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 notificaciones
Una regla de notificación representa una instancia de la lógica de negocios que tomará una notificación entrante, le aplicará una condición (si x, entonces y) y generará una notificación saliente según los parámetros de la condición. La lista siguiente destaca las sugerencias importantes que deberías conocer sobre las reglas de notificaciones antes de seguir leyendo 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 notificaciones procesa las reglas de notificación en orden cronológico dentro de un conjunto determinado de reglas. Al establecer una precedencia en las reglas, puedes perfeccionar o filtrar aún más las notificaciones que generan las reglas anteriores dentro de un conjunto determinado de reglas.
Siempre tendrás 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 con una sola regla.
Para más información sobre las reglas de notificación y los conjuntos de reglas de notificación, consulte El rol de las reglas de notificaciones. Para más información sobre cómo se procesan las reglas, consulte El rol del motor de notificaciones. Para 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. Básicamente, se asignan atributos LDAP específicos de un almacén de atributos definido por el usuario a un conjunto de notificaciones salientes que pueden usarse para la autorización.
Esta plantilla permite agregar varios atributos, que se enviarán como notificaciones múltiples, de 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 company y departament de Active Directory y, después, enviará estos valores como dos notificaciones salientes diferentes.
También puede utilizar esta regla para enviar todas las pertenencias a grupos 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, consulte When to Use a Send Group Membership as a Claim Rule.
Cómo crear 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 permite las siguientes opciones de configuración:
Especificar un nombre de regla de notificaciones
Seleccionar un almacén de atributos del que extraer los atributos LDAP
Asignación de atributos LDAP a tipos de notificación saliente
Para más información sobre cómo crear esta regla, consulte Creación de 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 ejemplos siguientes se proporcionan para ayudarle a comprender algunas de las distintas formas de que crear una regla personalizada mediante el lenguaje de reglas de notificación para la consulta y extracción de 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 un punto y coma. El primer parámetro es el filtro LDAP. Los parámetros siguientes son los atributos para devolver en cualquier objeto coincidente.
En el ejemplo siguiente se muestra cómo buscar un usuario por el atributo sAMAccountName y emitir una notificación de dirección de correo electrónico usando 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 ejemplo siguiente se muestra cómo buscar un usuario por el atributo mail y emitir notificaciones de título y nombre para mostrar usando 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 de usuario (con el nombre de dominio) como el último parámetro para que el almacén de atributos de Active Directory pueda consultar el dominio correcto. De lo contrario, se admitirá la misma sintaxis.
En el ejemplo siguiente se muestra cómo buscar un usuario por el atributo sAMAccountName en su dominio y, luego, 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: Cómo consultar un almacén de atributos de Active Directory según 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 se compone de las tres partes siguientes:
El filtro LDAP: el usuario especifica esta parte de la consulta para recuperar los objetos cuyos atributos desea consultar. Para obtener información general acerca de las consultas LDAP válidas, vea RFC 2254. Cuando se consulta un almacén de atributos de Active Directory y no se especifica un filtro LDAP, se supone la consulta samAccountName={0} y el almacén de atributos de Active Directory espera un parámetro que pueda proporcionar el valor de {0}. De lo contrario, la consulta producirá un error. Para 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 atributos: en esta segunda parte de la consulta, se deben especificar los atributos (separados por comas si se usan varios valores de atributo) que se desean obtener de los objetos filtrados. El número de atributos que especifique debe coincidir con el número de tipos de notificación que defina en la consulta.
Dominio de Active Directory: especifique la última parte de la consulta solo si 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 del dominio para determinar el controlador de dominio adecuado para conectarse a la consulta y ejecutarla, así como para solicitar los atributos.
Ejemplo: Cómo usar dos reglas personalizadas para extraer el correo electrónico del administrador de un atributo en Active Directory
Las siguientes dos reglas personalizadas, cuando se utilizan conjuntamente en el orden que se muestra a continuación, consultan en Active Directory el atributo manager de la cuenta de usuario (regla 1) y después usan ese atributo para consultar en la cuenta de usuario del administrador el atributo mail (regla 2). Por último, el atributo mail se emite como una notificación "ManagerEmail". En resumen, la regla 1 consulta a 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 funcionan únicamente 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