OneDriveの同期をGUIDで制限したら、macOSは素通りだった話

はじめに

どうも、むろです。

今回は、OneDriveクライアントのデータ同期を制限しようとした際にmacOSで追加対応が必要だったケースを紹介します

はじめにまとめ

  • SharePoint管理センターのドメインGUID制限(ホワイトリスト形式)では、macOSは制限できない
  • macOSのOneDriveクライアントの同期を止めるには「BlockMacSync」というパラメーターの追加設定が必要
  • 設定に管理GUIはなくPowerShell(SharePoint Online Management Shell)が必要
    • SharePoint Online Management ShellはmacOSでは実行できない

そもそも、なぜ端末とデータ同期させたくないのか

クラウドストレージの同期クライアントは便利な反面、クラウドストレージのデータを擬似的にファイルシステムとしてアクセスできることから、端末とクラウドストレージの境界を悪い意味でなくしてしまいます

  • 同期クライアントがなければ、「ブラウザ」という境界が存在し、ランサムウェアがクラウドストレージに直接アクセスしにくくなります

仮に端末がランサムウェアに感染すると、端末上で暗号化・汚染されたファイルがそのままクラウドストレージへ同期され、被害がクラウド側のデータにまで波及してしまう可能性があります

これはOneDriveに限った話ではなく、Box Driveなど他のクラウドストレージの同期クライアントでも同じ構図です

こういった背景から同期を制限したいケースが出てきます

OneDriveクライアントの同期の制限方法

GUIから設定する同期の制限手順

SharePoint管理センターの「同期」設定には「特定のドメインに参加しているコンピューターでのみ同期を許可する」という項目があります

許可したいADドメインのGUIDを指定するホワイトリスト形式の設定です

このホワイトリスト形式を逆手にとって、実在しないダミーのGUIDを1つだけ登録してしまえば「どのドメインにも該当しない=全面的に同期禁止」が実現できます(と思ったらmacOSは制限対象外なので、後述に続きます)

これ自体は昔からよく知られたテクニックだと思います(多分)

ダミーのGUIDはPowerShellの「New-Guid」で生成できます

macOSにはGUID指定だけでは足りない

いざ動作確認をしてみると、macOSのOneDrive同期アプリからは普通に同期できてしまいました

調べてみると、「Set-SPOTenantSyncClientRestriction」の公式ドキュメントに以下のように記載されています

参考:Set-SPOTenantSyncClientRestriction(Microsoft Learn)

All Microsoft OneDrive Mac Sync client and Mac Beta client requests will not be blocked by default.

つまり、macOSはそもそもGUIDによる制限の対象外で、GUIDを指定してもmacOSからの同期は止まらないのが正しい挙動でした

「BlockMacSync」というパラメーターで制限する

では、macOSの同期を制御したい場合はどうするのか?というと、同じドキュメントに記載されている「BlockMacSync」というパラメーターを使います

ただし、こちらは「全許可か全ブロックか」の二択で、「特定のGUIDだけ許可」はできません

今回は「macOSでの同期利用の想定はない」環境だったので、BlockMacSyncで全面ブロックする設定としています

なお、この設定に管理GUIはなく、PowerShell(SharePoint Online Management Shell)での設定が必要です

さらに、SharePoint Online Management ShellはmacOSのPowerShellではサポートされていないため、Windows OSの端末が必要になります(めんどくさい、、、)

「BlockMacSync」の設定手順

  1. 自組織テナントのSharePoint Onlineへ接続
    powershell
    # SharePoint Onlineへ接続
    Connect-SPOService -Url https://<テナント名>-admin.sharepoint.com
  2. 現在のGUID設定をAllowedDomainListから控える
    powershell
    # 現在の設定を確認(AllowedDomainListの値を控える)
    Get-SPOTenantSyncClientRestriction
  3. BlockMacSyncをTrueに設定する、かつDomainGuidsには前ステップで控えたGUIDを指定する
    powershell
    # 既存のGUIDをそのまま指定しつつ、macOSの同期をブロック
    Set-SPOTenantSyncClientRestriction -Enable -DomainGuids "<既存のドメインGUID>" -BlockMacSync:$true
    • -BlockMacSync は単体でも設定できますが、-Enable を付けてドメインGUID制限とあわせて設定する場合は -DomainGuids の指定が必須です
      • 省略すると以下のエラーになります
    • DomainGuidsは許可リストを丸ごと上書きするため、手順内にあるように最初に設定したGUIDと同じ値をAllowedDomainListから控えて、そのまま指定します
  4. 設定後は以下のように結果を確認します
    powershell
    PS C:\WINDOWS\system32> Get-SPOTenantSyncClientRestriction
    
    
    TenantRestrictionEnabled   : True
    AllowedDomainList          : {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
    BlockMacSync               : True
    ExcludedFileExtensions     : {}
    OptOutOfGrooveBlock        : False
    OptOutOfGrooveSoftBlock    : False
    DisableReportProblemDialog : False

動作確認を忘れずに

設定の反映には少し時間がかかる場合があるので、間を置いてから動作確認をしましょう

  • 公式には「機能の有効化は最大24時間、許可ドメインリストの変更は5分以内に反映」とあります
  • 今回の検証ではすぐに反映はされました

制限が成功していれば、macOS上のOneDriveクライアントのアカウント認証後に以下のメッセージが表示されます

おわりに

「GUIDで制限したから設定完了」と思っていたら、macOS向けには実は設定が不足していたという話でした

改めて、動作確認の大事さが身に沁みました、、、

この記事が誰かの役に立ったら嬉しいです!以上、むろでした。

この記事をシェア