Manage user profile photo settings in Microsoft 365 by using Microsoft Graph に記載されている通り、Microsoft Graph の /photoUpdateSettings を使用することで、ユーザーによるプロフィール写真の変更を禁止することができます。なお /photoUpdateSettings は本記事の執筆時点では beta エンドポイントでのみ提供されており v1.0 エンドポイントでは提供されていません。そのため、動作が今後予告なく変わる可能性があります。本番環境での使用もサポートされないのでご注意ください。
Microsoft Graph を使用するので、Graph Explorer を使用するのが簡単です。
- Graph Explorer に全体管理者でアクセスし、右上の [Sing in] からサインインします。
- 右上のプロフィール写真 ([Sing in] だった場所) をクリックし、[Consent to permissions] をクリックします。
- 「PeopleSettings.ReadWrite.All」を探して [Consent] をクリックします。
- 同意画面が表示されるので内容を確認の上で同意します。
- Graph Explorer に戻るので右上の [x] で Permissions 画面を閉じます。
- [Get] が選択されているドロップダウンから [PATCH] を選択します。
- [v1.0] が選択されているドロップダウンから [beta] を選択します。
- その右のテキストボックスに “https://graph.microsoft.com/beta/admin/people/photoupdatesettings” と入力します。
- [Reques body] に以下のように入力します。この例では、ユーザー管理者以外はプロフィール写真の変更をできなくします。もし全体管理者とユーザー管理者以外はプロフィール写真の変更をできなくしたい場合は allowedRoles の値を [“62e90394-69f5-4237-9190-012177145e10”, “fe930be7-5e62-47db-91af-98c3a49a38b1”] にします。そのほかの値は執筆時点では使用できません。
{
"source": "cloud",
"allowedRoles": ["fe930be7-5e62-47db-91af-98c3a49a38b1"]
}
- [Run query] をクリックします。
- [Success] と表示されることを確認します。
以上で設定は完了です。しばらく待ってからユーザー管理者ではないユーザーを使用して自分でプロフィール写真を設定しようとしてみてください。失敗します。細かい失敗の理由は F12 のネットワーク トレースや Fiddler で通信を確認する必要があります。Microsoft Graph の場合は ForbiddenByAdmindEditPolicy という code のエラーが返されて失敗していることが分かります。Outlook on the Web や Azure ポータルでプロフィール写真を設定する際には Microsoft Graph が使用されている (Azure ポータルの場合は batch リクエストとして使用されている) ので、通信を見ると ForbiddenByAdmindEditPolicy が返されているのが分かります。
直接 Microsoft Graph を使用していない Delve や Teams でもプロフィール写真の設定は失敗するようになりますが、通信のエラー内容は各サービスによって異なります。