ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【PowerShell】Microsoft 365 グループのセキュリティグループ機能を有効化する


Power Apps でTeamsのチームに使われている Microsoft 365 グループ を共有先に選ぶには、Microsoft 365 のセキュリティグループ機能を有効化する必要があります。
Azure AD PowerShell が廃止となることから、Microsoft Graph PowerShell でやってみたメモ書きです。

Power Apps で共有できるグループ

Power Apps を共有できるグループには下記のグループがあります。

Microsoft 365 グループに共有するには、Microsoft 365 グループのセキュリティグループ機能が有効になっている必要があります。

learn.microsoft.com

アプリを Microsoft 365 グループと共有する アプリを Microsoft 365 グループ と共有できます。 ただし、グループでセキュリティを有効にする必要があります。 セキュリティを有効にすると、Microsoft 365 グループは、アプリやリソースにアクセスするための認証用のセキュリティ トークンを受け取ることができます。

Microsoft Graph PowerShell で設定を確認する

接続

PowerShell 7 を起動し、Microsoft Graph API に接続します。
今回は、グループに関する読み取りと書き込みをするので、下記のコマンドを実行します。

Connect-MgGraph -Scopes "Group.ReadWrite.All"

グループIDを確認する

Microsoft Entra ID管理センターのグループから確認するのが簡単です。

Teamsのスレッドのリンクを取得して、TeamsIDも同様にMicrosoft 365 グループのIDですので、こちらの方法もあります。

flali.hatenablog.com

Microsoft 365 グループのセキュリティ設定を確認する

Get-MgGroup コマンドでセキュリティグループ設定を確認します。
Teamsから作成した場合、Microsoft 365 グループの SecurityEnabled が false の設定で作成されています。

Get-MgGroup -GroupId 3e3e1619-b2b1-4b90-be16-4439471ea5d7 | select SecurityEnabled

セキュリティグループ設定を有効化する

Update-MgGroup コマンドを利用して、セキュリティグループ機能を有効化します。

$params = @{ 
    securityEnabled = $true
} 

Update-MgGroup -GroupId 3e3e1619-b2b1-4b90-be16-4439471ea5d7 -BodyParameter $params

設定の確認
セキュリティグループ機能が有効化になっているか、先ほど利用したコマンドを実行して確認します。

セキュリティグループ設定を無効化する

セキュリティグループ機能を無効化したい場合は、設定を false にします。

$params = @{ 
    securityEnabled = $false 
} 

Update-MgGroup -GroupId 3e3e1619-b2b1-4b90-be16-4439471ea5d7 -BodyParameter $params 

接続の切断

Microsoft Graph PowerShell は接続すると接続しっぱなしになるので、コマンドでちゃんと切断しましょう。

Disconnect-MgGraph

さいごに

Microsoft 365 のセキュリティグループ機能を有効化しても機能に変更が入るわけではないですが、Power Apps でアプリの共有先に利用するにはこの設定を有効化しないといけません。
操作しているのは Microsoft Graph API なので、Power Automate のクラウドフローでも設定できそうです。