Microsoft 365 でユーザーによるプロフィール写真の変更を禁止する

Manage user profile photo settings in Microsoft 365 by using Microsoft Graph に記載されている通り、Microsoft Graph の /photoUpdateSettings を使用することで、ユーザーによるプロフィール写真の変更を禁止することができます。なお /photoUpdateSettings は本記事の執筆時点では beta エンドポイントでのみ提供されており v1.0 エンドポイントでは提供されていません。そのため、動作が今後予告なく変わる可能性があります。本番環境での使用もサポートされないのでご注意ください。

Microsoft Graph を使用するので、Graph Explorer を使用するのが簡単です。

  1. Graph Explorer に全体管理者でアクセスし、右上の [Sing in] からサインインします。
  2. 右上のプロフィール写真 ([Sing in] だった場所) をクリックし、[Consent to permissions] をクリックします。
  3. 「PeopleSettings.ReadWrite.All」を探して [Consent] をクリックします。
  4. 同意画面が表示されるので内容を確認の上で同意します。
  5. Graph Explorer に戻るので右上の [x] で Permissions 画面を閉じます。
  6. [Get] が選択されているドロップダウンから [PATCH] を選択します。
  7. [v1.0] が選択されているドロップダウンから [beta] を選択します。
  8. その右のテキストボックスに “https://graph.microsoft.com/beta/admin/people/photoupdatesettings” と入力します。
  9. [Reques body] に以下のように入力します。この例では、ユーザー管理者以外はプロフィール写真の変更をできなくします。もし全体管理者とユーザー管理者以外はプロフィール写真の変更をできなくしたい場合は allowedRoles の値を [“62e90394-69f5-4237-9190-012177145e10”, “fe930be7-5e62-47db-91af-98c3a49a38b1”] にします。そのほかの値は執筆時点では使用できません。
{
    "source": "cloud",
    "allowedRoles": ["fe930be7-5e62-47db-91af-98c3a49a38b1"]
}
  1. [Run query] をクリックします。
  2. [Success] と表示されることを確認します。

以上で設定は完了です。しばらく待ってからユーザー管理者ではないユーザーを使用して自分でプロフィール写真を設定しようとしてみてください。失敗します。細かい失敗の理由は F12 のネットワーク トレースや Fiddler で通信を確認する必要があります。Microsoft Graph の場合は ForbiddenByAdmindEditPolicy という code のエラーが返されて失敗していることが分かります。Outlook on the Web や Azure ポータルでプロフィール写真を設定する際には Microsoft Graph が使用されている (Azure ポータルの場合は batch リクエストとして使用されている) ので、通信を見ると ForbiddenByAdmindEditPolicy が返されているのが分かります。

直接 Microsoft Graph を使用していない Delve や Teams でもプロフィール写真の設定は失敗するようになりますが、通信のエラー内容は各サービスによって異なります。