【 New-MgDirectoryRoleMemberByRef 】コマンドレット――Azure Active Directoryユーザーにロールを割り当てる:Windows PowerShell基本Tips(65)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-MgDirectoryRoleMemberByRef」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Azure Active Directory」(Azure AD)を管理するための権限がまとめられた「ロール」をユーザーに割り当てる「New-MgDirectoryRoleMemberByRef」コマンドレットです。
New-MgDirectoryRoleMemberByRefコマンドレットとは?
「New-MgDirectoryRoleMemberByRef」は、PowerShellを利用してAzure ADユーザーにロールを割り当てるためのコマンドレットです。ロールはブラウザからも割り当てることができますが、コマンドレットは特定のタイミングでロールを割り当てるような処理を自動化する場合に有効です。
なお、New-MgDirectoryRoleMemberByRefコマンドレットは、本連載第45回で解説した「Connect-MgGraph」コマンドレットで「Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"」と実行して、Azure ADへの接続とアクセス許可を与えておくことが前提条件になります。
New-MgDirectoryRoleMemberByRefコマンドレットの主なオプション
オプション | 意味 |
---|---|
-DirectoryRoleId | ユーザーを追加するAzure ADロールIDを指定する |
-BodyParameter | Azure ADロールに追加するユーザーを指定する |
Azure ADロールのIDを調べる
New-MgDirectoryRoleMemberByRefコマンドレットでロールにユーザーを追加する場合は、事前に操作する「ロールID」を知っておく必要があります。Azure ADの各ロールIDは「Get-MgDirectoryRole」コマンドレットで確認します(画面1)。
コマンドレット実行例
Get-MgDirectoryRole | select DisplayName,Id
ロールIDが割り当てられていないAzure ADロールを割り当てる
Get-MgDirectoryRoleコマンドレットで表示されないAzure ADロールを操作する場合は、事前にロールテンプレートからロールを割り当てる操作が必要になります。ロールテンプレートで定義されているロールとロールIDの一覧は、「Get-MgDirectoryRoleTemplate」コマンドレットで確認します(画面2)。
コマンドレット実行例
Get-MgDirectoryRoleTemplate | select DisplayName,Id
![画面2](https://image.itmedia.co.jp/ait/articles/2303/24/PowerShell_65-02.png)
画面2 Get-MgDirectoryRoleTemplateコマンドレットを実行し、実行結果から「DisplayName」と「Id」の2つの列だけを表示するようにして、ロールテンプレートIDを確認できるようにした
一方、ロールテンプレートで調べたロールテンプレートIDから新しくロール割り当てをする場合は、「New-MgDirectoryRole」コマンドレットを使います(画面3)。
コマンドレット実行例
New-MgDirectoryRole -RoleTemplateId b0f54661-2d74-4c50-afa3-1ec803f12efe
![画面3](https://image.itmedia.co.jp/ait/articles/2303/24/PowerShell_65-03.png)
画面3 New-MgDirectoryRoleコマンドレットに続けて「-RoleTemplateId」オプションでGet-MgDirectoryRoleTemplateコマンドレットで調べた特定のロールテンプレートのIDを指定した。ここでは課金管理者(Billing Administrator)のIDである「b0f54661-2d74-4c50-afa3-1ec803f12efe」を指定した。その後、改めてGet-MgDirectoryRoleコマンドレットを実行すると、ロール一覧に課金管理者が追加されたことが確認できる
Azure ADロールにユーザーを追加する
Get-MgDirectoryRoleコマンドレットの実行結果からロールIDを確認できたら、New-MgDirectoryRoleMemberByRefコマンドレットを使用して特定のユーザーをロールに追加します。追加対象となるロールIDの指定には「-DirectoryRoleId」オプション、ユーザーの追加には「-BodyParameter」オプションを指定します。
なお、「-BodyParameter」オプションはOData(Open Data Protocol)を使って指定する必要があり、ユーザーは「@{"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/ユーザーID"}」となるように指定します。ユーザーIDには、本連載第50回で解説した「Get-MgUser」コマンドレットを使って事前に調べたIDが入ります(画面4)。
コマンドレット実行例
New-MgDirectoryRoleMemberByRef -DirectoryRoleId f9e89923-0ca5-44bf-997d-12dc061e596a -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/bd8969ba-fff7-46f0-8f6a-d971eac22ad7"}
![画面4](https://image.itmedia.co.jp/ait/articles/2303/24/PowerShell_65-04.png)
画面4 New-MgDirectoryRoleMemberByRefコマンドレットに続けて-DirectoryRoleIdオプションで課金管理者のロールのIDを指定し、-BodyParameterオプションでロールを割り当てるユーザーのユーザーIDを指定した。ユーザーIDの指定にはODataを使うため「@{"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/bd8969ba-fff7-46f0-8f6a-d971eac22ad7"}」のように(bd8969ba-fff7-46f0-8f6a-d971eac22ad7はユーザーのID)指定している。
筆者紹介
国井 傑(くにい すぐる)
株式会社エストディアン代表取締役。1997年からマイクロソフト認定トレーナーとして、Azure Active DirectoryやMicrosoft 365 Defenderなど、クラウドセキュリティを中心としたトレーニングを提供している。2007年からMicrosoft MVP for Enterprise Mobilityを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。
Copyright © ITmedia, Inc. All Rights Reserved.