共有チャネル所有者の同期(スケジュール済み)
Security Group のメンバーが、マッピングされた Teams とその共有チャネルの所有者であることを確認します。
説明
Teams の Shared Channel は親のチームから所有権を継承しません。このスケジュール実行される runbook はそのギャップを埋めます。マッピングで指定された各チームについて、対応付けられた Security Group のメンバーがそのチームと、そのチームがホストするすべての Shared Channel の所有者であることを保証します。チーム名から所有者グループへのマッピングは、RealmJoin の org 設定として中央で管理されます。runbook は add-only です。既存の所有者やメンバーは削除されないため、新しく作成された Shared Channel は次回の実行で自動的に取り込まれます。必要に応じて、レポートをメール送信したり、CSV 結果をダウンロード リンクとしてアップロードしたりできます。マッピング ルールと構成については、付属のドキュメントを参照してください。
仕組み
各実行で runbook は次を行います:
org 設定からチーム名→所有者グループのマッピングを読み取ります
SharedChannelOwners.Mapping.各エントリについて、そのチームを 完全一致の表示名.
で検索し、そのエントリの所有者グループを推移的な ユーザー メンバーに展開します(ゲストはスキップされます。ゲストは Shared Channel に所属できません)。
それらのユーザーが、そのチームおよびチームがホストするすべての ホストされている Shared Channel の所有者であることを保証します。
runbook は add-onlyです。既存の所有者やメンバーを降格または削除することは決してありません。そのため、新しく作成された Shared Channel は、既に設定済みの内容に影響を与えることなく、次回の予定実行で自動的に取り込まれます。
マッピング構成
マッピングは RealmJoin の org 設定(Runbook Customization → 設定 → SharedChannelOwners.Mapping)に中央で保存されるため、一度だけ管理され、すべてのスケジュールで共有されます。これは { TeamName, OwnerGroupId } オブジェクトの一覧であり、 TeamName は 正確なチーム表示名 (以下の 注記 セクションにすぐ使える例があります)。隠し TeamOwnerGroupMapping パラメーターはこの設定から注入されます。runbook は、構造化された配列(推奨のサブ設定形式)としても JSON 文字列としても受け付け、両方を正規化します。
チームの一致
各マッピング エントリは、明示的に名前指定された 1 つのチームを対象にします:
チームはその 完全一致の表示名 (Microsoft Graph と整合するように大文字小文字を区別せず、構成された名前の前後の空白は無視されます)。対象となるのはそのチームのみであり、プレフィックスやワイルドカードの動作はないため、エントリに
EXT Service Aと指定してもEXT Service A Backupなどには影響しません。表示名は Entra ID で一意であることが保証されていません。複数のチームが構成された名前を共有している場合、所有者グループは すべて に適用されます。チームが一致しない場合、そのエントリは 見つかりません として報告され、スキップされます。
チーム選択
構成された各 TeamName について、runbook は Graph の displayName eq '...' 検索を実行し、Team としてプロビジョニングされた Microsoft 365 グループだけを残します Team.
変更される内容
Team(任意、
IncludeTeamOwners、既定ではオン): 所有者グループのユーザーは、親 M365 グループの所有者およびメンバーとしても追加されます。Team のメンバーシップは Shared Channel の所有者になるための技術的前提でもあるため、この手順でチャネル手順が有効になります。Shared Channel: ホストされている各 Shared Channel(
membershipType eq 'shared')、各所有者グループのユーザーがチャネルの 所有者 であることを保証します。存在しなければ直接追加し、既にメンバーであれば昇格します。直接の所有者追加が拒否された場合(例: メンバーシップのレプリケーション遅延)、runbook はまずユーザーをメンバーとして追加し、その後で昇格するようにフォールバックします。
ドライラン
設定 WhatIfMode を設定すると、何も書き込まずに変更内容をログに出力します。このモードでは runbook は、最初に処理対象となるチーム(所有者グループ付き)と、見つからなかった構成済みチーム名を出力します。
レポート(任意、どちらも既定ではオフ)
SendEmailReportを有効にすると、RealmJoin ブランドのメール(Send-RjReportEmail経由)を送信し、実行統計と 2 つの CSV 添付ファイル(チームごとの要約と変更ごとの詳細一覧)を含めます。送信者はRJReport.EmailSender設定から取得されます。CreateDownloadLinkを有効にすると、同じ CSV を Storage Account にアップロードし、期限付きの SAS ダウンロード リンクを返します(両方のオプションが有効な場合はメールにも埋め込まれます)。対象の Storage Account はRJReport.StorageAccount.*設定から取得されます。
ストレージへのアップロードは Automation アカウントのマネージド ID で認証されます。この ID には対象の Storage Account に対する Storage Blob Data Contributor RBAC ロールが必要です(これは Azure RBAC の割り当てであり、Graph アプリケーション権限ではありません)。
スケジューリング
構成が org 設定に一元化され、runbook が add-only かつ冪等であるため、手動介入なしで定期実行するよう設計されています。単一の定期スケジュールにより、ユーザーやチャネルの増減に応じて、マッピングされたすべてのチームとその Shared Channel を同期状態に保てます。
場所
Organization → General → Shared Channel 所有者の同期 (Scheduled)
完全な Runbook 名
rjgit-org_general_sync-sharedchannel-owners_scheduled
権限
アプリケーションの権限
種類: Microsoft Graph
Group.ReadWrite.All
GroupMember.ReadWrite.All
Channel.ReadBasic.All
ChannelMember.ReadWrite.All
Mail.Send
パラメーター
TeamOwnerGroupMapping
正確なチーム表示名から所有者 Security Group オブジェクト ID へのマッピング。例: [{ "TeamName": "EXT Service A", "OwnerGroupId": "00000000-0000-0000-0000-000000000000" }]。org Setting "SharedChannelOwners.Mapping" にバインドされた隠しパラメーターです。RealmJoin ポータルがその値を注入します。runbook は、デシリアライズ済みのオブジェクト/配列(構造化されたサブ設定)としても JSON 文字列としても受け付け、両方を正規化します。
必須
false
既定値
[]
種類
オブジェクト
IncludeTeamOwners
有効にすると(既定)、所有者グループのメンバーは親チーム自身の所有者およびメンバーとしても保証されます(M365 グループの所有者/メンバー)。Team のメンバーシップは、チャネル所有権の前提条件でもあります。
必須
false
既定値
True
種類
ブール値
WhatIfMode
有効にすると、runbook は変更する内容を何も書き込まずにログに出力するだけになります。
必須
false
既定値
False
種類
ブール値
SendEmailReport
有効にすると、実行後に Send-RjReportEmail 経由で RealmJoin ブランドのメール レポートが送信されます。本文には実行統計と 2 つの CSV 添付ファイル(チームごとの要約と変更ごとの詳細)が含まれます。
必須
false
既定値
False
種類
ブール値
EmailTo
レポートの受信者メール アドレス(カンマ区切り)。SendEmailReport が有効な場合にのみ使用されます。
必須
false
既定値
種類
文字列
EmailFrom
レポートの送信者メールボックス。org Setting "RJReport.EmailSender" にバインドされています。
必須
false
既定値
種類
文字列
CreateDownloadLink
有効にすると、CSV レポートが Storage Account にアップロードされ、期限付きダウンロード リンクが返されます(それが有効であればメール レポートにも含まれます)。既定ではオフ。
必須
false
既定値
False
種類
ブール値
ContainerName
アップロードに使用する Storage コンテナー。runbook ごとに構成されます(グローバルな RJReport 設定ではありません)。
必須
false
既定値
shared-channel-owners
種類
文字列
ResourceGroupName
Storage Account を含むリソース グループ。"RJReport.StorageAccount.ResourceGroup" にバインドされています。
必須
false
既定値
種類
文字列
StorageAccountName
アップロードに使用する Storage Account。"RJReport.StorageAccount.StorageAccountName" にバインドされています。
必須
false
既定値
種類
文字列
LinkExpiryDays
生成されたダウンロード リンクが期限切れになるまでの日数。"RJReport.StorageAccount.LinkExpiryDays" にバインドされています。
必須
false
既定値
6
種類
Int32
最終更新
役に立ちましたか?