今回はTeams上で、チームを作成出来るユーザー(グループ)を制限する方法を検証してみました。

基本的にチームは誰でも作成が可能ですが、そうすると組織内でチームが乱立してしまうことがあります。
そのようなことを避けたい、もしくは管理者ですべてのチームを把握・管理したい、みたいな要望がある時にはチーム作成権限を制限する必要があります。

では早速手順を確認していきたいと思いますっ!!


<参考サイト>
Microsoft 365 グループを作成できるユーザーを管理する

<検証ライセンス>
Office 365 E3


前提条件として、今回検証する操作を実施する上で必要となるライセンスがあります。

Azure Active Directory Premium ライセンス (P1 もしくは P2)
または
Azure Active Directory Basic for EDU ライセンス (←教育機関向けライセンス)
のどちらかです。
※参考サイトの原文
To manage who creates groups, the following people need Azure AD Premium licenses or Azure AD Basic EDU licenses assigned to them:

その為、今回はAzure AD Premium P1が内包されているOffice 365 E3の試用版を用いて検証しました。


チームの作成権限」=「Microsoft 365グループの作成権限」ということなので、
実質的には「Microsoft 365グループの作成権限」を制限(限定)している形となります。
大まかな手順としては2つとなります。

1. チームの作成権限を付与するセキュリティグループを作成する

2. Powershellコマンドにてチーム作成権限の制限を実施する



1. チームの作成権限を付与するセキュリティグループを作成する

最初にMicrosoft 365管理センター上からチームの作成権限を最終的に付与するセキュリティグループを作成します。
01-セキュリティグループ作成

02-セキュリティグループ作成

03-セキュリティグループ作成
⇒メンバーとして「TESTユーザー01」と「TESTユーザー02」を追加しています。
 つまり最終的に01と02のみがチームの作成権限を持つ想定となります。


これでセキュリティグループの作成は完了です。



2. Powershellコマンドにてチーム作成権限の制限を実施する

次にPowershellを実行します。
実行するPowershellコマンドは参考サイト上に公開されていますので、そちらを使用します。
(注)事前に「Install-Module AzureADPreview」を実行して必要なコマンドレッドを取得します。
   また以前に「Install-Module AzureAD」を実行していた場合には「Uninstall-Module AzureAD」も
   あわせて実行する必要もあります。


<GroupCreators.ps1>
$GroupName = "EnableCreateTeamGroup"
$AllowGroupCreation = $False

Connect-AzureAD

$settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
if(!$settingsObjectID)
{
    $template = Get-AzureADDirectorySettingTemplate | Where-object {$_.displayname -eq "group.unified"}
    $settingsCopy = $template.CreateDirectorySetting()
    New-AzureADDirectorySetting -DirectorySetting $settingsCopy
    $settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
}

$settingsCopy = Get-AzureADDirectorySetting -Id $settingsObjectID
$settingsCopy["EnableGroupCreation"] = $AllowGroupCreation

if($GroupName)
{
  $settingsCopy["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -SearchString $GroupName).objectid
} else {
$settingsCopy["GroupCreationAllowedGroupId"] = $GroupName
}
Set-AzureADDirectorySetting -Id $settingsObjectID -DirectorySetting $settingsCopy

(Get-AzureADDirectorySetting -Id $settingsObjectID).Values
赤字部分に先程作成したセキュリティグループ名を記載します。

Powershellコマンドの処理としては
・テナント全体でMicrosoft 365グループの作成を禁止(した上で)
・Microsoft 365グループの作成を許可するグループを指定

という感じみたいです。

設定を元に戻す際には最初の2行を
$GroupName = ""
$AllowGroupCreation = $True
という感じにすれば良いようです。


(実際のコマンド実行例)
04-コマンド実行
⇒念の為「Uninstall-Module AzureAD」を実行していますが、検証端末にはモジュールがなかったようでエラーになっています・・・(^_^;)
 「GroupCreators.ps1」コマンド実行時にログインプロンプトが表示されますので、
 Microsoft 365管理者でログインします!!

05-コマンド実行

06-コマンド実行
⇒エラーなく完了しました。
 「GroupCreationAllowedGroupId」に値が表示され、「EnableGroupCreation」が「False
 となっていればOKのようです。


事前に作成したグループの値(オブジェクトID)が指定されているかを最終確認する為
以下のコマンドでオブジェクトIDを確認しておきます。
Get-AzureADGroup -SearchString "EnableCreateTeamGroup" | Select DisplayName,objectid

07-コマンド実行
⇒一部伏せていますが、オブジェクトIDが同じであることが確認出来ました(^o^)


これで設定自体はすべて完了です!!
実際に設定が反映されているのか確認してみます。

(許可グループ所属ユーザー) ※TESTユーザー01と02
11-チーム作成画面あり01

12-チーム作成画面あり02

チーム作成画面があることが確認出来ます。


(許可グループ未所属ユーザー) ※TESTユーザー03とテナント管理者
10-チーム作成画面がない

13-チーム作成画面がない
※たとえテナント管理者であってもチーム作成権限がないことがわかります。
 ただし管理者であれば管理センター上からチーム(Microsoft 365グループ)作成が可能です。


Powershell実行後から比較的はやく設定が反映されました。
検証環境では10分程度で反映した感じです。
⇒Microsoft 365の中では比較的反映がはやかったですが、環境によっては時間がかかることもあるかもですね・・^^;



今回の検証もこんなところで終了したいと思います( ´ー`)フゥー...
スポンサードリンク