Configuración de notificaciones de grupo para aplicaciones mediante Azure Active Directory

Azure Active Directory (Azure AD) puede proporcionar información de pertenencia a un grupo de usuarios en tokens que se pueden usar en las aplicaciones. Esta característica admite dos patrones principales:

  • Grupos que se identifican por su atributo de identificador de objeto (OID) de Azure AD
  • Grupos que se identifican por el atributo sAMAccountName o GroupSID para usuarios y grupos sincronizados por Active Directory

Importante

La cantidad de grupos emitidos en un token se limita a 150 para las aserciones de SAML y 200 para JWT, incluidos los grupos anidados. En organizaciones más grandes, la cantidad de grupos de los que un usuario es miembro puede exceder el límite que Azure AD agregará a un token. Superar un límite puede generar resultados impredecibles. Para soluciones alternativas a estos límites, lea más información en Advertencias importantes para esta funcionalidad.

Advertencias importantes sobre esta funcionalidad

  • La compatibilidad con el uso de los atributos del identificador de seguridad (SID) y de sAMAccountName sincronizados en el entorno local está diseñada para permitir el traslado de aplicaciones existentes desde los Servicios de federación de Active Directory (AD FS) y otros proveedores de identidades. Los grupos administrados en Azure AD no contienen los atributos necesarios para emitir estas notificaciones.

  • Para evitar el límite de número de grupos si los usuarios tienen un gran número de pertenencias a grupos, puede restringir los grupos emitidos en las notificaciones a los grupos pertinentes de la aplicación. Obtenga más información sobre la emisión de grupos asignados a la aplicación para tokens JWT y tokens SAML. Si no es posible asignar grupos a las aplicaciones, también puede configurar un filtro de grupo para reducir la cantidad de grupos que se emiten en la notificación. El filtrado de grupos se aplica a los tokens emitidos para las aplicaciones en las que las notificaciones y el filtrado de grupos se configuraron en la hoja Aplicaciones empresariales del portal.

  • Las notificaciones de grupo tienen un límite de 5 grupos si el token se emite a través del flujo implícito. Los tokens solicitados a través del flujo implícito solo tendrán una notificación "hasgroups":true si el usuario está en más de cinco grupos.

  • Se recomienda basar la autorización en la aplicación en roles de aplicación en lugar de grupos cuando:

    • Desarrolla una nueva aplicación o si se puede configurar una aplicación existente para ella.
    • No se requiere compatibilidad con grupos anidados.

    Al usar roles de aplicación, se limita la cantidad de información que se necesita para acceder al token; además, es más seguro y podrá separar la asignación de usuarios de la configuración de la aplicación.

Notificaciones de grupo para aplicaciones que migran de AD FS y otros proveedores de identidad

Muchas aplicaciones que están configuradas para autenticarse con AD FS dependen de la información de la suscripción del grupo en forma de atributos de grupo de Windows Server Active Directory. Estos atributos son el grupo sAMAccountName, que se puede calificar en función del nombre de dominio, o el identificador de seguridad de grupo de Windows (GroupSID). Cuando la aplicación está federada con AD FS, AD FS usa la función TokenGroups para recuperar las pertenencias del grupo para el usuario.

Una aplicación que se ha pasado de AD FS necesita que las notificaciones tengan el mismo formato. Las notificaciones de grupo y rol que se emiten desde Azure AD pueden contener el atributo sAMAccountName calificado por el dominio o el atributo GroupSID sincronizado desde Active Directory, en lugar del atributo objectID de Azure AD del grupo.

Los formatos que se admiten en las notificaciones de grupo son:

  • ObjectId del grupo de Azure AD: disponible para todos los grupos.
  • sAMAccountName: disponible para los grupos sincronizados desde Active Directory.
  • NetbiosDomain\sAMAccountName: disponible para los grupos sincronizados desde Active Directory.
  • DNSDomainName\sAMAccountName: disponible para los grupos sincronizados desde Active Directory.
  • Identificador de seguridad de grupo local: disponible para los grupos sincronizados desde Active Directory.

Nota

sAMAccountName y los atributos GroupSID locales solo están disponibles en los objetos de grupo sincronizados desde Active Directory. No están disponibles en los grupos creados en Azure AD ni Office 365. Las aplicaciones configuradas en Azure AD para obtener atributos de grupo locales sincronizados solo se obtienen para grupos sincronizados.

Opciones para que las aplicaciones consuman información de grupo

Las aplicaciones pueden llamar al punto de conexión del grupo de Microsoft Graph para obtener la información del grupo para el usuario autenticado. Esta llamada garantiza que todos los grupos de los que un usuario es miembro estén disponibles, incluso cuando haya una gran cantidad de grupos involucrados. De este modo, la enumeración de grupos es independiente de las limitaciones de tamaño del token.

Sin embargo, si una aplicación existente espera consumir información de grupo a través de notificaciones, es posible configurar Azure AD con varios formatos de notificación. Considere las opciones siguientes:

  • Al usar la pertenencia a grupos para la autorización en la aplicación, es preferible usar el atributo ObjectID del grupo. El atributo ObjectID del grupo es inmutable y único en Azure AD. Está disponible para todos los grupos.

  • Si usa el atributo sAMAccountName de grupo local para la autorización, use nombres calificados por el dominio. Reduce la posibilidad de que los nombres entren en conflicto. sAMAccountName puede ser único dentro de un dominio de Active Directory, pero si más de un dominio de Active Directory está sincronizado con un inquilino de Azure AD, existe la posibilidad de que más de un grupo tenga el mismo nombre.

  • Puede usar los roles de aplicación para proporcionar una capa de direccionamiento indirecto entre la suscripción del grupo y la aplicación. A continuación, la aplicación toma decisiones de autorización internas basadas en las notificaciones de roles del token.

  • Si la aplicación está configurada para obtener atributos de grupo que se sincronizan desde Active Directory y un grupo no contiene esos atributos, no se incluirá en las notificaciones.

  • Las notificaciones de grupo en tokens incluyen grupos anidados, excepto cuando se usa la opción para restringir las notificaciones de grupo a los grupos asignados a la aplicación.

    Si un usuario es miembro de GroupB, y GroupB es, a su vez, miembro de GroupA, las notificaciones de grupo del usuario contendrán GroupA y GroupB. Si los usuarios de una organización tienen un gran número de suscripciones a grupos, la cantidad de grupos enumerados en el token puede aumentar el tamaño de ese token. Azure AD limita la cantidad de grupos que se emitirá en un token a 150 para las aserciones de SAML y a 200 para JWT. Si un usuario es miembro de un mayor número de grupos, se omiten los grupos. En su lugar, se incluye un vínculo al punto de conexión de Microsoft Graph para obtener información de los grupos.

Requisitos previos para usar atributos de grupo sincronizados desde Active Directory

Las notificaciones de pertenencia a grupos se pueden emitir en tokens para cualquier grupo si usa el formato ObjectId. Para usar notificaciones de grupo en formatos distintos de ObjectId de grupo, los grupos se deben sincronizar desde Active Directory mediante Azure AD Connect.

Para configurar Azure AD para emitir nombres de grupos para los grupos de Active Directory:

  1. Sincronizar los nombres de grupos de Active Directory

    Para que Azure AD pueda emitir los nombres de grupos o los SID de grupos locales en notificaciones de grupo o rol, deberá sincronizar los atributos necesarios de Active Directory. Debe ejecutar la versión 1.2.70 de Azure AD Connect, o cualquier versión posterior. Las versiones anteriores a 1.2.70 de Azure AD Connect sincronizarán los objetos del grupo desde Active Directory, pero no incluirán los atributos de nombre de grupo requeridos.

  2. Configurar el registro de aplicación en Azure AD para incluir notificaciones de grupo en tokens

    Puede configurar notificaciones de grupo en la sección Aplicaciones empresariales del portal, o bien con el manifiesto de aplicación en la sección Registros de aplicación. Para configurar las notificaciones de grupo en el manifiesto de aplicación, consulte Configuración del registro de aplicación de Azure AD para los atributos de grupo más adelante en este artículo.

Adición de notificaciones de grupo para aplicaciones SAML mediante la configuración de SSO

Para configurar notificaciones de grupo para una aplicación SAML de la galería o que no pertenece a la galería a través del inicio de sesión único (SSO):

  1. Abra Aplicaciones empresariales, seleccione la aplicación en la lista, Configuración de inicio de sesión único y, luego, seleccione Atributos y notificaciones de usuario.

  2. Seleccione Agregar una notificación de grupo.

    Screenshot that shows the page for user attributes and claims, with the button for adding a group claim selected.

  3. Use las opciones para seleccionar qué grupos se deben incluir en el token.

    Screenshot that shows the Group Claims window with group options.

    Número de selección Descripción
    Todos los grupos Emite grupos de seguridad, listas de distribución y roles.
    Grupos de seguridad Emite grupos de seguridad de los que el usuario es miembro en la notificación de grupos.
    Roles de directorio Si al usuario se le asignan roles de directorio, se emiten como una notificación wids. (No se emitirá la notificación del grupo).
    Grupos asignados a la aplicación Emite solo los grupos asignados explícitamente a la aplicación y de los que el usuario es miembro. Se recomienda para organizaciones grandes debido al límite de número de grupos en el token.
    • Por ejemplo, para emitir todos los grupos de seguridad de los que el usuario es miembro, seleccione Grupos de seguridad.

      Screenshot that shows the Group Claims window, with the option for security groups selected.

      Para emitir grupos mediante los atributos de Active Directory sincronizados desde Active Directory en lugar de los atributos objectID de Azure AD, seleccione el formato requerido en la lista desplegable Atributo de origen. Solo los grupos sincronizados desde Active Directory se incluirán en las notificaciones.

      Screenshot that shows the drop-down menu for the source attribute.

    • Para emitir solo grupos asignados a la aplicación, seleccione Grupos asignados a la aplicación.

      Screenshot that shows the Group Claims window, with the option for groups assigned to the application selected.

      Los grupos asignados a la aplicación se incluirán en el token. Otros grupos de los que el usuario sea miembro se omitirán. Con esta opción, no se incluyen los grupos anidados y el usuario debe ser miembro directo del grupo asignado a la aplicación.

      Para cambiar los grupos asignados a la aplicación, seleccione la aplicación en la lista Aplicaciones empresariales. Luego, seleccione Usuarios y grupos en el menú izquierdo de la aplicación.

      Para más información sobre cómo administrar la asignación de grupos a aplicaciones, consulte Asignación de un usuario o grupo a una aplicación empresarial.

Establecimiento de opciones avanzadas

Personalización del nombre de notificación de grupo

Puede modificar la manera en que se emiten notificaciones de grupo mediante la configuración en Opciones avanzadas.

Si selecciona Personalizar el nombre de la notificación de grupo, puede especificar otro tipo de notificación para las notificaciones de grupo. Escriba el tipo de notificación en el cuadro Nombre y el espacio de nombres opcional para la notificación en el cuadro Espacio de nombres.

Screenshot that shows advanced options, with the option of customizing the name of the group claim selected and the name and namespace values entered.

Algunas aplicaciones requieren que la información de suscripción del grupo aparezca en la notificación de rol. También puede activar la casilla Emitir grupos como notificaciones de rol para emitir los grupos del usuario como roles.

Screenshot that shows advanced options, with the checkboxes selected for customizing the name of the group claim and emitting groups as role claims.

Nota

Si usa la opción de emitir datos de grupo como roles, solo los grupos aparecerán en la notificación de rol. Ningún rol de aplicación que tenga asignado el usuario aparecerá en la notificación de rol.

Filtrado de grupos

El filtrado de grupos permite un control preciso de la lista de grupos que se incluye como parte de la notificación de grupo. Cuando se configura un filtro, solo los grupos que coinciden con el filtro se incluirán en la notificación del grupo que se envía a dicha aplicación. El filtro se aplicará a todos los grupos independientemente de la jerarquía de grupos.

Nota:

El filtrado de grupos se aplica a los tokens emitidos para las aplicaciones en las que las notificaciones y el filtrado de grupos se configuraron en la hoja Aplicaciones empresariales del portal.

Puede configurar los filtros para que se apliquen al nombre para mostrar o al atributo SAMAccountName del grupo. Se admiten las operaciones de filtrado siguientes:

  • Prefijo: coincide con el inicio del atributo seleccionado.
  • Sufijo: coincide con el final del atributo seleccionado.
  • Contiene: coincide con cualquier ubicación del atributo seleccionado.

Screenshot that shows filtering options.

Transformación de grupo

Algunas aplicaciones pueden requerir los grupos en un formato diferente de cómo se representan en Azure AD. Para cumplir con este requisito, puede aplicar una transformación a cada grupo que se emitirá en la notificación de grupo. Para lograrlo, permita la configuración de una expresión regular (regex) y un valor de reemplazo en las notificaciones de grupo personalizadas.

Screenshot of group transformation, with regex information added.\

  • Patrón de regex: use una expresión regular para analizar cadenas de texto según el patrón que se estableció en este cuadro. Si el patrón de regex que describe se evalúa como true, se ejecutará el patrón de reemplazo de regex.
  • Patrón de reemplazo de regex: en la notación de regex, describa cómo quiere que se reemplace la cadena si el patrón de regex que describió se evalúa como true. Use grupos de capturas para buscar coincidencias con subexpresiones en esta expresión regular de reemplazo.

Para más información sobre los grupos de capturas y reemplazos de expresiones regulares, consulte El modelo de objetos de expresión regular: El grupo capturado.

Nota

Tal como se describe en la documentación de Azure AD, no es posible modificar una notificación restringida mediante una directiva. No se puede cambiar el origen de datos ni se aplica ninguna transformación al generar estas notificaciones. La notificación de grupo sigue siendo una notificación restringida, por lo que debe cambiar el nombre de los grupos para personalizarlos. Si selecciona un nombre restringido como el nombre de la notificación de grupo personalizada, la notificación se omitirá en tiempo de ejecución.

También puede usar la característica de transformación de expresión regular como filtro, porque los grupos que no coincidan con el patrón de regex no se emitirán en la notificación resultante.

Edición de la configuración de notificaciones de grupo

Una vez que agrega una configuración de notificación de grupo a la configuración Atributos y notificaciones de usuario, la opción para agregar una notificación de grupo no estará disponible. Para cambiar la configuración de notificación de grupo, seleccione la notificación de grupo en la lista Notificaciones adicionales.

Screenshot of the area for user attributes and claims, with the name of a group claim highlighted.

Configuración del registro de aplicación de Azure AD para atributos de grupo

También puede configurar las notificaciones de grupo en la sección Notificaciones opcionales del manifiesto de aplicación.

  1. En el portal, seleccione Azure Active Directory>Registros de aplicación>Seleccionar aplicación>Manifiesto.

  2. Cambie groupMembershipClaims para habilitar las notificaciones de pertenencia a grupos.

    Los valores válidos son:

    Número de selección Descripción
    All Emite grupos de seguridad, listas de distribución y roles.
    SecurityGroup Emite grupos de seguridad de los que el usuario es miembro en la notificación de grupo.
    DirectoryRole Si al usuario se le asignan roles de directorio, se emiten como una notificación wids. (No se emitirá una notificación de grupo).
    ApplicationGroup Emite solo los grupos asignados explícitamente a la aplicación y de los que el usuario es miembro.
    None No se devuelve ningún grupo. (No distingue mayúsculas de minúsculas, por lo que también funciona none. Se puede establecer directamente en el manifiesto de aplicación).

    Por ejemplo:

    "groupMembershipClaims": "SecurityGroup"
    

    De manera predeterminada, los atributos ObjectID de grupo se emitirán en el valor de la notificación de grupo. Para modificar el valor de la notificación para que contenga los atributos del grupo local, o bien para cambiar el tipo de notificación a rol, use la configuración optionalClaims que se describe en el paso siguiente.

  3. Establezca notificaciones opcionales para la configuración de nombre del grupo.

    Si quiere que los grupos del token contengan los atributos de grupo de Active Directory local, especifique a qué tipo de token se debe aplicar la notificación opcional en la sección optionalClaims. Puede enumerar varios tipos de token:

    • idToken para el token de identificador de OIDC
    • accessToken para el token de acceso de OAuth/OIDC
    • Saml2Token para tokens SAML

    Nota

    El tipo Saml2Token se aplica a los tokens tanto en formato SAML1.1 como SAML2.0.

    Para cada tipo de token pertinente, modifique la notificación de grupo para usar la sección optionalClaims en el manifiesto. El esquema optionalClaims es el siguiente:

    {
    "name": "groups",
    "source": null,
    "essential": false,
    "additionalProperties": []
    }
    
    Esquema de notificaciones opcionales Value
    name Debe ser "groups".
    source No se usa. Omitir o especificar null.
    essential No se usa. Omitir o especificar false.
    additionalProperties Lista de propiedades adicionales. Las opciones válidas son "sam_account_name", "dns_domain_and_sam_account_name", "netbios_domain_and_sam_account_name" y "emit_as_roles".

    En additionalProperties, solo uno de estos elementos, "sam_account_name", "dns_domain_and_sam_account_name" o "netbios_domain_and_sam_account_name", es obligatorio. Si hay más de uno, se usa el primero y omiten los demás.

    Algunas aplicaciones requieren información de grupo sobre el usuario en la notificación de rol. Para cambiar el tipo de notificación de una notificación de grupo a una notificación de rol, agregue "emit_as_roles" a las propiedades adicionales. Los valores de grupo se emitirán en la notificación de rol.

    Nota:

    Si usa "emit_as_roles", ninguno de los roles de aplicación configurados al que está asignado el usuario aparecerá en la notificación de rol.

Ejemplos

Emita los grupos como nombres de grupos en tokens de acceso de OAuth con formato DNSDomainName\sAMAccountName:

"optionalClaims": {
    "accessToken": [{
        "name": "groups",
        "additionalProperties": ["dns_domain_and_sam_account_name"]
    }]
}

Emita los nombres de grupos que se devolverán con formato NetbiosDomain\sAMAccountName como la notificación de rol en tokens de identificador de OIDC y SAML:

"optionalClaims": {
    "saml2Token": [{
        "name": "groups",
        "additionalProperties": ["netbios_domain_and_sam_account_name", "emit_as_roles"]
    }],

    "idToken": [{
        "name": "groups",
        "additionalProperties": ["netbios_domain_and_sam_account_name", "emit_as_roles"]
    }]
}

Pasos siguientes