For the complete documentation index, see llms.txt. This page is also available as Markdown.

Synchronisation planifiée des propriétaires du Shared Channel

Faire des membres d'un groupe les propriétaires des équipes et des Shared Channel mappés

Il s'agit d'un runbook planifié. Il est conçu pour s'exécuter selon une planification récurrente plutôt que d'être déclenché pour un objet unique. Voir Planification pour plus de détails sur la configuration des planifications du runbook.

Description

Les canaux partagés n’héritent pas des propriétaires de leur équipe. Pour chaque équipe nommée dans le mappage, les membres du groupe de sécurité mappé deviennent propriétaires de l’équipe et de chaque canal partagé qu’elle héberge. Cela n’ajoute jamais rien, ne supprime jamais rien ; les nouveaux canaux partagés sont pris en compte lors de la prochaine exécution. Une exécution à blanc affiche les modifications sans les appliquer. Le rapport peut être envoyé par e-mail ou fourni sous forme de lien de téléchargement.

Fonctionnement

À chaque exécution, le runbook :

  1. Lit le mappage du nom de l’équipe vers le groupe de propriétaires à partir du paramètre d’organisation SharedChannelOwners.Mapping.

  2. Pour chaque entrée, recherche l’équipe par son nom d’affichage exact.

  3. Développe le groupe de propriétaires de cette entrée jusqu’à ses utilisateurs membres (les invités sont ignorés — ils ne peuvent pas appartenir à un canal partagé).

  4. S’assure que ces utilisateurs sont propriétaires de l’équipe et de chaque hébergé canal partagé de l’équipe.

Le runbook est en ajout uniquement: il ne rétrograde ni ne supprime jamais les propriétaires ou membres existants. Les canaux partagés nouvellement créés sont donc pris en compte automatiquement lors de la prochaine exécution planifiée, sans perturber ce qui est déjà en place.

Configuration du mappage

Le mappage est centralisé dans les paramètres d’organisation de RealmJoin (Personnalisation du runbook → Paramètres → SharedChannelOwners.Mapping) ; il est maintenu une seule fois et partagé par chaque planification. Il s’agit d’une liste d’ { TeamName, OwnerGroupId } objets, où TeamName est le nom d’affichage exact de l’équipe. Le paramètre masqué TeamOwnerGroupMapping est injecté à partir de ce paramètre ; le runbook l’accepte soit sous forme de tableau structuré (forme recommandée de sous-paramètre), soit sous forme de chaîne JSON, et normalise les deux.

Exemple prêt à l’emploi pour les paramètres d’organisation :

{
    "Settings": {
        "SharedChannelOwners": {
            "Mapping": [
                { "TeamName": "EXT Service A", "OwnerGroupId": "11111111-1111-1111-1111-111111111111" },
                { "TeamName": "EXT Service B", "OwnerGroupId": "22222222-2222-2222-2222-222222222222" }
            ]
        }
    }
}

Correspondance des équipes

Chaque entrée de mappage cible une équipe explicitement nommée :

  • Une équipe est mise en correspondance par son nom d’affichage exact (insensible à la casse, conformément à Microsoft Graph ; les espaces environnants dans le nom configuré sont ignorés). Seule cette équipe est traitée — il n’y a aucun comportement de préfixe ni de caractère générique, donc nommer une entrée EXT Service A n’affecte jamais EXT Service A Backup ou similaire.

  • Les noms d’affichage ne sont pas garantis uniques dans Entra ID. Si plusieurs équipes partagent le nom configuré, le groupe de propriétaires est appliqué à tous chacune d’elles. Si aucune équipe ne correspond, l’entrée est signalée comme introuvable et ignorée.

Sélection des équipes

Pour chaque TeamName configuré, le runbook exécute une requête Graph displayName eq '...' de recherche et ne conserve que les groupes Microsoft 365 provisionnés en tant qu’ équipe.

Ce qui est modifié

  • équipe (facultatif, IncludeTeamOwners, activé par défaut) : les utilisateurs du groupe de propriétaires sont ajoutés en tant que propriétaires et membres du groupe M365 parent. L’appartenance à l’équipe est également la condition technique requise pour devenir propriétaire d’un canal partagé, cette étape active donc l’étape des canaux.

  • Canaux partagés : pour chaque canal partagé hébergé (membershipType eq 'shared'), chaque utilisateur du groupe de propriétaires est garanti comme propriétaire - ajouté directement s’il est absent, ou promu s’il est déjà membre. Si l’ajout direct comme propriétaire est refusé (p. ex. en raison d’un délai de réplication de l’appartenance), le runbook commence par ajouter l’utilisateur comme membre, puis le promeut.

Exécution à blanc

Sélectionnez Dry run ? pour consigner ce qui changerait sans rien écrire. Chaque exécution affiche d’emblée les équipes qu’elle traitera (avec leur groupe de propriétaires) ainsi que les noms d’équipe configurés qui n’ont pas été trouvés ; lors d’une exécution à blanc, les modifications sont listées comme modifications prévues.

Planification

Conçu pour s’exécuter sans surveillance selon une planification. Comme la configuration est centralisée dans les paramètres d’organisation et que le runbook est en ajout uniquement et idempotent, une seule planification récurrente maintient toutes les équipes mappées et leurs canaux partagés synchronisés au fil des arrivées et des départs de personnes et de canaux.

Livraison du rapport

Chaque exécution écrit ses résultats dans l’onglet Output Data du portail RealmJoin : un résumé, les modifications effectuées (ou prévues lors d’une exécution à blanc), les équipes et utilisateurs ignorés avec la raison (équipe introuvable, groupe de propriétaires vide, utilisateurs invités, modifications échouées) ainsi que les affectations de propriétaires déjà en place. Chaque tableau peut y être exporté vers Excel.

Les fichiers du rapport ne sont générés que lorsqu’une méthode de livraison est sélectionnée via l’ Livraison du rapport option (e-mail et/ou lien de téléchargement) : un résumé par équipe et une liste détaillée par modification, sous forme de fichiers CSV et/ou d’un classeur Excel. Avec Données de sortie uniquement sélectionné, les résultats sont lus directement dans l’onglet Output Data. La remise par e-mail et la génération de lien de téléchargement sont indépendantes et peuvent être combinées ; lorsque les deux sont sélectionnées, les liens de téléchargement sont également intégrés dans l’e-mail.

Pour le lien de téléchargement, les fichiers du rapport sont téléversés vers le Storage Account Azure configuré dans les RJReport.StorageAccount.* paramètres du Tenant, et des liens de téléchargement SAS à durée limitée sont renvoyés. Le téléversement vers le stockage s’authentifie avec l’identité managée du compte Automation ; cette identité a besoin du Storage Account Contributor rôle RBAC sur le Storage Account cible (il s’agit d’une attribution Azure RBAC, et non d’une autorisation d’application Graph).

Les planifications enregistrées avec les libellés de remise précédents (par exemple option de rapport par e-mailOrganisation → Général → Sync Shared Channel Owners (Scheduled) Données de sortie uniquement ) conservent leur mode de remise. Lorsqu’une telle planification est ouverte pour modification, l’option affiche

Configuration de l’envoi d’e-mails

L’envoi du rapport par e-mail est facultatif et ne se produit que lorsque Envoyer aussi le rapport par e-mail ou Envoyer aussi par e-mail et lien de téléchargement bien que la remise enregistrée reste active ; sélectionnez à nouveau la remise avant d’enregistrer afin que la boîte de dialogue corresponde au comportement de la planification. Send-RjRbReportEmail) contient les statistiques d’exécution et les fichiers du rapport en pièces jointes. L’adresse de l’expéditeur est reprise de la RJReport.EmailSender paramètre du tenant.

Ce runbook envoie des e-mails à l’aide de l’API Microsoft Graph. Pour envoyer des e-mails via l’API Graph, vous devez configurer une adresse e-mail existante dans la personnalisation du runbook.

Voir la documentation des paramètres de rapport RealmJoin pour plus de détails sur tous les paramètres disponibles.

Identité visuelle des e-mails

L’e-mail du rapport prend en compte le paramètre facultatif RJReport.Branding.* des paramètres du tenant :

  • Image d’en-tête et de pied de page - URL HTTPS publiques, PNG/JPEG/GIF, 200 Ko max. chacune

  • Lien de pied de page - cible de l’image de pied de page

  • Couleur d’accentuation et du texte - valeurs hexadécimales à 6 chiffres, p. ex. #0052cc

Lorsque ces paramètres ne sont pas configurés, les graphiques et couleurs par défaut de RealmJoin sont utilisés. Une image qui ne peut pas être téléchargée ou validée, ou une valeur de couleur non valide, n’empêche jamais l’e-mail du rapport — la valeur par défaut correspondante est utilisée à la place.

Instructions de configuration et exigences relatives aux images : Identité visuelle des e-mails.

Emplacement

Organisation → Général → Sync Shared Channel Owners (Scheduled)

Nom complet du runbook

rjgit-org_general_sync-shared-channel-owners_scheduled

Détails

Propriété
Valeur

Version

1.4.0

Modules requis

RealmJoin.RunbookHelper (>= 0.8.9) Microsoft.Graph.Authentication (>= 2.39.0) Az.Accounts (>= 5.5.2)

Planifiable

oui

Autorisations

Autorisations d’application

  • Type: Microsoft Graph

    • Channel.ReadBasic.All

      • Liste /teams/{id}/channels pour trouver les canaux partagés à traiter

    • ChannelMember.ReadWrite.All

      • Lit les membres du canal et ajoute des utilisateurs ou les promeut au rang de propriétaire de canal partagé

    • Group.ReadWrite.All

      • Liste les équipes, lit les noms du groupe de propriétaires et les propriétaires du groupe, et ajoute les propriétaires d’équipe manquants via /groups/{id}/owners/$ref

    • GroupMember.ReadWrite.All

      • Lit les membres transitifs du groupe de propriétaires et ajoute d’abord les utilisateurs en tant que membres de l’équipe

    • User.Read.All

      • Lit les propriétés des utilisateurs membres (UPN, userType) via transitiveMembers afin de filtrer les invités

    • Mail.Send (facultatif — fonctionnalité : rapport par e-mail)

      • Envoie l’e-mail de rapport de synchronisation via Send-RjRbReportEmail lorsque la remise par e-mail est sélectionnée

    • Organization.Read.All (facultatif — fonctionnalité : rapport par e-mail)

      • Lit le nom d’affichage du Tenant pour l’e-mail du rapport

Notes sur les autorisations

Azure Storage Account : rôle 'Storage Account Contributor' pour l’identité managée du compte Automation sur le Storage Account cible - le téléversement récupère les clés du compte via listKeys (uniquement requis pour les options de lien de téléchargement)

Paramètres

TeamOwnerGroupMapping

Liste des noms d’équipe avec le groupe de sécurité dont les membres deviennent propriétaires. Extrait du paramètre du Tenant SharedChannelOwners.Mapping.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

[]

Type

Objet

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

IncludeTeamOwners

Fait également des membres du groupe des propriétaires et des membres de l’équipe elle-même, ce qui est nécessaire pour posséder ses canaux.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Vrai

Type

Booléen

Nom d’affichage du portail

Les faire aussi devenir propriétaires de l’équipe ?

WhatIfMode

Consigne seulement ce qui changerait sans rien écrire.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Faux

Type

Booléen

Nom d’affichage du portail

Dry run ?

SendEmailReport

Envoie le rapport à l’adresse e-mail du destinataire.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Faux

Type

Booléen

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

EmailTo

Envoyez le rapport à ces adresses. Séparez-en plusieurs par des virgules ; chaque destinataire reçoit un e-mail séparé.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Nom d’affichage du portail

Adresse(s) e-mail du destinataire

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

EmailFrom

Adresse d’expédition de l’e-mail du rapport. Récupérée à partir du paramètre du tenant RJReport.EmailSender.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

BrandingHeaderImageUrl

Image d’en-tête de l’e-mail du rapport (URL HTTPS, PNG/JPEG/GIF, 200 Ko max.). Récupérée à partir du paramètre du tenant RJReport.Branding.HeaderImageUrl ; l’en-tête RealmJoin par défaut est utilisé si vide.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

BrandingFooterImageUrl

Image de pied de page de l’e-mail du rapport (URL HTTPS, PNG/JPEG/GIF, 200 Ko max.). Récupérée à partir du paramètre du tenant RJReport.Branding.FooterImageUrl ; le pied de page RealmJoin par défaut est utilisé si vide.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

Lien derrière l’image de pied de page de l’e-mail du rapport. Récupéré à partir du paramètre du tenant RJReport.Branding.FooterLink ; realmjoin.com est utilisé si vide.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

BrandingAccentColor

Couleur d’accentuation de l’e-mail du rapport sous forme de valeur hexadécimale à 6 chiffres. Récupérée à partir du paramètre du tenant RJReport.Branding.AccentColor ; la valeur par défaut RealmJoin est utilisée si vide ou invalide.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

BrandingTextColor

Couleur du texte de l’e-mail du rapport sous forme de valeur hexadécimale à 6 chiffres. Récupérée à partir du paramètre du tenant RJReport.Branding.TextColor ; la valeur par défaut RealmJoin est utilisée si vide ou invalide.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

ReportFileFormat

Remettez le rapport au format CSV, sous forme de classeur Excel, ou les deux.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

CSV et XLSX

Type

Chaîne

Nom d’affichage du portail

Format du fichier de rapport

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

Options du portail

Option du portail
Valeur

CSV et XLSX

CSV et XLSX

CSV uniquement

CSV uniquement

XLSX uniquement

XLSX uniquement

Télécharge aussi le rapport et renvoie un lien de téléchargement qui expire après quelques jours.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Faux

Type

Booléen

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

Nom du conteneur

Conteneur de stockage dans lequel les fichiers du rapport sont téléversés. À définir pour chaque runbook.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

shared-channel-owners

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

Nom du groupe de ressources

Groupe de ressources du Storage Account pour les téléversements de rapports. Pris à partir du paramètre Tenant RJReport.StorageAccount.ResourceGroup.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

Nom du Storage Account

Storage Account pour les téléversements de rapports. Pris à partir du paramètre Tenant RJReport.StorageAccount.StorageAccountName.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

Type

Chaîne

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

LinkExpiryDays

Nombre de jours pendant lesquels un lien de téléchargement reste valide. Pris à partir du paramètre Tenant RJReport.StorageAccount.LinkExpiryDays.

Propriété
Valeur

Obligatoire

faux

Valeur par défaut

6

Type

Int32

Masqué dans le portail

oui (prédéfini via la personnalisation du runbook)

Mis à jour

Ce contenu vous a-t-il été utile ?