Sincronizar miembros de canal o grupo programado
Sincronizar miembros entre un Shared Channel de Teams o un grupo y un Security Group de Entra
Descripción
Este runbook programado refleja la pertenencia de un objeto de origen en un objeto de destino en una sola dirección por ejecución. Admite sincronizar los miembros de un Teams Shared Channel en un Security Group, sincronizar los miembros de un grupo en otro grupo (por ejemplo, un grupo de Microsoft 365 en un Security Group o viceversa) y sincronizar los miembros de un grupo en un Teams Shared Channel. Siempre se agregan los miembros que faltan, mientras que la eliminación de los miembros que solo existen en el destino es opcional y se controla mediante un parámetro. El tratamiento de invitados y si las eliminaciones del canal también eliminan la pertenencia del equipo anfitrión son configurables, y el runbook puede, opcionalmente, enviar un informe por correo electrónico y cargar los resultados como un vínculo de descarga con tiempo limitado. El parámetro ReportFileFormat controla qué formatos de archivo del informe se generan y entregan (solo CSV, CSV y XLSX, o solo XLSX). Cuando el archivo adjunto CSV supera el límite de tamaño del correo electrónico y "CSV & XLSX" se selecciona, el correo electrónico recurre únicamente al libro de Excel.
Cómo funciona
Este runbook programado refleja la pertenencia de un origen objeto en un destino objeto en una sola dirección por ejecución. En cada ejecución:
Resuelve los objetos de origen y destino para la dirección seleccionada.
Lee el conjunto actual de miembros de ambos lados.
Agrega cada miembro de origen que falte en el destino.
Opcionalmente elimina cada miembro del destino que no exista en el origen (modo espejo).
Direcciones
El Direction parámetro selecciona qué se sincroniza en qué:
SharedChannelToGroup- los miembros de un Teams Shared Channel se copian en un Security Group de destino.GroupToGroup- los miembros de un grupo de origen se copian en un grupo de destino (por ejemplo, un grupo de Microsoft 365 en un Security Group, o al revés intercambiando origen y destino).GroupToSharedChannel- los miembros de un grupo de origen se copian en un Teams Shared Channel.
Adición y eliminación
Agregar los miembros que faltan siempre se realiza. La eliminación de los miembros que existen solo en el destino es opcional mediante RemoveExtraMembers (desactivado de forma predeterminada). Con la eliminación habilitada, el destino se refleja exactamente contra el origen; con ella deshabilitada, el runbook solo agrega miembros que faltan.
Expansión de miembros del grupo
Los miembros del grupo en el lado de origen se resuelven transitivamente, por lo que se incluyen los usuarios que son miembros a través de grupos anidados. En el lado de destino solo directos se tienen en cuenta, porque las operaciones de agregar y eliminar actúan sobre la pertenencia directa.
Tratamiento de invitados
IncludeGuests (desactivado de forma predeterminada) controla si los usuarios invitados participan en la sincronización. Cuando está desactivado, los invitados se omiten en ambos lados y nunca se agregan ni se eliminan. Los Shared Channel rechazan con frecuencia a los invitados, por lo que esto está desactivado de forma predeterminada.
Detalles específicos de Shared Channel
Cuando un grupo se sincroniza en un Shared Channel, la pertenencia al equipo es un requisito previo para la pertenencia al canal, por lo que el runbook primero garantiza que el usuario sea miembro del equipo anfitrión y luego lo agrega al canal.
Cuando se eliminan de un Shared Channel, de forma predeterminada solo se elimina la pertenencia al canal. Habilita
RemoveFromTeampara eliminar también al usuario de la pertenencia del equipo anfitrión.
Ejecución en seco
Establezca WhatIfMode para registrar qué cambiaría sin escribir nada.
Informe (opcional, ambos desactivados de forma predeterminada)
SendEmailReportenvía un correo electrónico con la marca RealmJoin (medianteSend-RjReportEmail) con estadísticas de ejecución y un archivo adjunto CSV que enumera cada cambio individual. El remitente se toma de laRJReport.EmailSenderde la configuración.CreateDownloadLinkcarga el mismo CSV en un Storage Account y devuelve un vínculo de descarga SAS con tiempo limitado (también incrustado en el correo electrónico cuando ambas opciones están habilitadas). El Storage Account de destino se toma de laRJReport.StorageAccount.*configuraciones.
La carga en el almacenamiento se autentica con la identidad administrada de la cuenta de Automation; esa identidad necesita el Storage Account Contributor rol RBAC en la cuenta de almacenamiento de destino (esta es una asignación RBAC de Azure, no un permiso de aplicación de Graph).
Programación
Diseñado para ejecutarse desatendido según una programación. Dado que el runbook es idempotente, una sola programación recurrente mantiene el destino sincronizado con el origen a medida que los miembros entran y salen.
Marca del correo electrónico
El correo electrónico del informe respeta las configuraciones opcionales RJReport.Branding.* del tenant:
Imagen de encabezado y pie de página – URL HTTPS públicas, PNG/JPEG/GIF, máx. 200 KB cada una
Enlace del pie de página – destino de la imagen del pie de página
Color de acento y de texto – valores hexadecimales de 6 dígitos, por ejemplo
#0052cc
Cuando estas configuraciones no están definidas, se usan los gráficos y colores predeterminados de RealmJoin. Una imagen que no se pueda descargar o validar, o un valor de color no válido, nunca impide el correo electrónico del informe; en su lugar, se usa el valor predeterminado correspondiente.
Instrucciones de configuración y requisitos de imagen: Marca del correo electrónico.
Ubicación
Organización → General → Sincronizar miembros de canal o grupo (programado)
Nombre completo del runbook
rjgit-org_general_sync-channel-or-group-members_scheduled
Detalles
Versión
1.3.0
Módulos requeridos
RealmJoin.RunbookHelper (>= 0.8.9)\nMicrosoft.Graph.Authentication (>= 2.39.0)\nAz.Accounts (>= 5.5.2)
Programable
sí
Permisos
Permisos de aplicación
Tipo: Microsoft Graph
Group.ReadWrite.All
Resuelve los grupos de origen/destino y el equipo anfitrión y escribe la pertenencia directa mediante /groups/{id}/members/$ref
GroupMember.ReadWrite.All
Agrega y elimina miembros directos del grupo de destino durante la sincronización
Channel.ReadBasic.All
Enumera /teams/{id}/channels para resolver el Shared Channel y verificar que sea un Shared Channel
ChannelMember.ReadWrite.All
Lee, agrega y elimina miembros del Shared Channel mediante /teams/{id}/channels/{id}/members
TeamMember.ReadWrite.All
Agrega/elimina la pertenencia del equipo anfitrión como requisito previo o limpieza para los miembros del Shared Channel
User.Read.All
Lee objetos de usuario miembro (id, UPN, userType) para detectar invitados y calcular el delta de pertenencia
Organization.Read.All
Lee /organization para incluir el nombre del Tenant en el correo electrónico del informe
Mail.Send (opcional — característica: informe por correo electrónico)
Envía el informe de sincronización mediante Send-RjReportEmail cuando la notificación por correo electrónico está habilitada
Parámetros
Direction
Selecciona qué se sincroniza en qué. SharedChannelToGroup copia los miembros del Shared Channel al grupo de destino, GroupToGroup copia los miembros del grupo de origen al grupo de destino y GroupToSharedChannel copia los miembros del grupo de origen al Shared Channel.
Obligatorio
true
Valor predeterminado
Tipo
String
Nombre mostrado en el portal
Qué debe sincronizarse
Opciones del portal
Miembros de Shared Channel -> Security Group
Miembros del grupo -> grupo
Miembros del grupo -> Shared Channel
TeamId
Id de objeto del equipo que aloja el Shared Channel. Solo se usa para las direcciones del Shared Channel.
Obligatorio
false
Valor predeterminado
Tipo
String
Nombre mostrado en el portal
Equipo que aloja el Shared Channel
ChannelName
Nombre para mostrar exacto del Shared Channel dentro del equipo seleccionado. Solo se usa para las direcciones del Shared Channel.
Obligatorio
false
Valor predeterminado
Tipo
String
Nombre mostrado en el portal
Nombre para mostrar del Shared Channel
SourceGroupId
Id de objeto del grupo de origen cuyos miembros se copian. Se usa para las direcciones de origen del grupo.
Obligatorio
false
Valor predeterminado
Tipo
String
Nombre mostrado en el portal
Grupo de origen
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
TargetGroupId
Id de objeto del Security Group de destino que recibe a los miembros. Se usa para las direcciones de destino del grupo.
Obligatorio
false
Valor predeterminado
Tipo
String
Nombre mostrado en el portal
Security Group de destino
RemoveExtraMembers
Cuando está habilitado, los miembros que existen solo en el destino y no en el origen se eliminan para que el destino refleje el origen. Cuando está deshabilitado (predeterminado), el runbook solo agrega miembros que faltan.
Obligatorio
false
Valor predeterminado
Falso
Tipo
Booleano
Nombre mostrado en el portal
Eliminar los miembros que solo existen en el destino (reflejar el origen)
IncludeGuests
Cuando está habilitado, los usuarios invitados se incluyen en la sincronización y se pueden agregar o eliminar. Cuando está deshabilitado (predeterminado), los invitados se omiten y nunca se agregan ni se eliminan.
Obligatorio
false
Valor predeterminado
Falso
Tipo
Booleano
Nombre mostrado en el portal
Incluir usuarios invitados
RemoveFromTeam
Solo relevante para GroupToSharedChannel. Cuando está habilitado, eliminar a un miembro del Shared Channel también lo elimina de la pertenencia del equipo anfitrión. Cuando está deshabilitado (predeterminado), solo se elimina la pertenencia al canal.
Obligatorio
false
Valor predeterminado
Falso
Tipo
Booleano
Nombre mostrado en el portal
Al eliminar del canal, también eliminar al usuario del equipo anfitrión
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
WhatIfMode
Cuando está habilitado, el runbook solo registra los cambios que haría sin escribir nada.
Obligatorio
false
Valor predeterminado
Falso
Tipo
Booleano
Nombre mostrado en el portal
Prueba de ejecución (solo registro, sin cambios)
SendEmailReport
Cuando está habilitado, se envía un informe de correo electrónico con la marca RealmJoin mediante Send-RjReportEmail después de la ejecución. Al activar esto se muestran los campos de dirección del destinatario y formato de archivo del informe.
Obligatorio
false
Valor predeterminado
Falso
Tipo
Booleano
Nombre mostrado en el portal
Enviar informe por correo electrónico
Opciones del portal
Sí - enviar el informe por correo electrónico
No - no enviar un correo electrónico
EmailTo
Dirección o direcciones de correo electrónico de los destinatarios del informe (separadas por comas). Solo se usa cuando SendEmailReport está habilitado.
Obligatorio
false
Valor predeterminado
Tipo
String
Nombre mostrado en el portal
Enviar informe a (dirección(es) de correo electrónico)
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
EmailFrom
Buzón remitente para el informe. Vinculado a la configuración de la organización RJReport.EmailSender.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
BrandingHeaderImageUrl
URL HTTPS pública opcional de una imagen de encabezado personalizada (PNG/JPEG/GIF, máx. 200 KB) para el correo electrónico del informe. Se obtiene de la configuración del tenant RJReport.Branding.HeaderImageUrl. Cuando está vacía, se usa el gráfico de encabezado predeterminado de RealmJoin.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
BrandingFooterImageUrl
URL HTTPS pública opcional de una imagen de pie de página personalizada (PNG/JPEG/GIF, máx. 200 KB) para el correo electrónico del informe. Se obtiene de la configuración del tenant RJReport.Branding.FooterImageUrl. Cuando está vacía, se usa el gráfico de pie de página predeterminado de RealmJoin.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
BrandingFooterLink
URL opcional a la que enlaza la imagen del pie de página. Se obtiene de la configuración del tenant RJReport.Branding.FooterLink. Cuando está vacía, se usa el enlace predeterminado (https://www.realmjoin.com).
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
BrandingAccentColor
Anulación opcional del color de acento (hexadecimal de 6 dígitos, por ejemplo '#0052cc') para la plantilla del correo electrónico del informe. Se obtiene de la configuración del tenant RJReport.Branding.AccentColor. Cuando está vacío o no es válido, se usa el color de acento predeterminado de RealmJoin.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
BrandingTextColor
Anulación opcional del color de texto (hexadecimal de 6 dígitos) para la plantilla del correo electrónico del informe. Se obtiene de la configuración del tenant RJReport.Branding.TextColor. Cuando está vacío o no es válido, se usa el color de texto predeterminado de RealmJoin.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
ReportFileFormat
Controla qué formatos de archivo del informe se generan y entregan: "solo CSV", "CSV & XLSX" (predeterminado) o "solo XLSX".
Obligatorio
false
Valor predeterminado
CSV & XLSX
Tipo
String
Nombre mostrado en el portal
Formato de archivo del informe
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
Opciones del portal
CSV & XLSX
solo CSV
solo XLSX
CreateDownloadLink
Cuando está habilitado, los archivos del informe se cargan en un Storage Account y se devuelven vínculos de descarga con tiempo limitado (también incluidos en el informe por correo electrónico si eso también está habilitado).
Obligatorio
false
Valor predeterminado
Falso
Tipo
Booleano
Nombre mostrado en el portal
Crear un vínculo de descarga del informe (cargar el informe en el almacenamiento)
Opciones del portal
Sí: subir el informe y devolver un enlace de descarga
No: no crear un enlace de descarga
ContainerName
Contenedor de Storage Account utilizado para la carga. Configurado por runbook.
Obligatorio
false
Valor predeterminado
channel-group-member-sync
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
ResourceGroupName
Grupo de recursos que contiene el Storage Account. Vinculado a RJReport.StorageAccount.ResourceGroup.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
StorageAccountName
Storage Account utilizado para la carga. Vinculado a RJReport.StorageAccount.StorageAccountName.
Obligatorio
false
Valor predeterminado
Tipo
String
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
LinkExpiryDays
Días hasta que el vínculo de descarga generado caduque. Vinculado a RJReport.StorageAccount.LinkExpiryDays.
Obligatorio
false
Valor predeterminado
6
Tipo
Int32
Oculto en el portal
sí (preconfigurado mediante la personalización del runbook)
Última actualización
¿Te fue útil?