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
oGroupSID
para usuarios y grupos sincronizados por Active Directory - Grupos identificados por su atributo Nombre para mostrar para grupos solo en la nube (versión preliminar)
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 atributoObjectID
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:
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.
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):
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.
Seleccione Agregar una notificación de grupo.
Use las opciones para seleccionar qué grupos se deben incluir en el token.
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.
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.Para emitir solo grupos asignados a la aplicación, seleccione Grupos asignados a la aplicación.
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.
Emisión del nombre para mostrar para grupos solo en la nube en el token (versión preliminar)
Puede configurar la notificación de grupo para incluir el nombre para mostrar del grupo para los grupos solo en la nube.
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.
Si ya tiene las notificaciones de grupo configuradas, selecciónelas en la sección Notificaciones adicionales. De lo contrario, puede agregar la notificación de grupo como se describe en los pasos anteriores.
Para el tipo de grupo emitido en el token, seleccione Grupos asignados a la aplicación:
Para emitir el nombre para mostrar del grupo para grupos solo en la nube, en el desplegable Atributo de origen seleccione la opción Nombres para mostrar del grupo solo en la nube (versión preliminar):
En el caso de una configuración híbrida, para emitir el atributo de grupo local para los grupos sincronizados y el nombre para mostrar para los grupos en la nube, puede seleccionar el atributo de orígenes locales deseado y marcar la casilla Emitir el nombre del grupo para los grupos solo en la nube (versión preliminar):
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.
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.
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.
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.
\
- 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.
Si la transformación aplicada a la notificación de grupos originales da como resultado una nueva notificación personalizada, la notificación de grupos original se omitirá del token. Sin embargo, si la expresión regular configurada no coincide con ningún valor de la lista original, la notificación personalizada no estará presente y la notificación de grupos originales se incluirá en el token.
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.
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.
En el portal, seleccione Azure Active Directory>Registros de aplicación>Seleccionar aplicación>Manifiesto.
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ónoptionalClaims
que se describe en el paso siguiente.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 OIDCaccessToken
para el token de acceso de OAuth/OIDCSaml2Token
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 esquemaoptionalClaims
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"
,"cloud_displayname"
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.Para emitir el nombre para mostrar del grupo para los grupos solo en la nube, puede agregar
"cloud_displayname"
aadditional properties
. Esta opción solo es válida cuando“groupMembershipClaims”
se establece enApplicationGroup
.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"]
}]
}