【 New-MgDirectoryRoleMemberByRef 】コマンドレット――Azure Active Directoryユーザーにロールを割り当てるWindows PowerShell基本Tips(65)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-MgDirectoryRoleMemberByRef」コマンドレットを解説します。

» 2023年03月24日 05時00分 公開
[国井傑株式会社エストディアン]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、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コマンドレットの書式

New-MgDirectoryRoleMemberByRef [オプション]


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 

画面1 画面1 Get-MgDirectoryRoleコマンドレットを実行し、実行結果から「DisplayName」と「Id」の2つの列だけを表示するようにして、ロールIDを確認できるようにした

ロールIDが割り当てられていないAzure ADロールを割り当てる

 Get-MgDirectoryRoleコマンドレットで表示されないAzure ADロールを操作する場合は、事前にロールテンプレートからロールを割り当てる操作が必要になります。ロールテンプレートで定義されているロールとロールIDの一覧は、「Get-MgDirectoryRoleTemplate」コマンドレットで確認します(画面2)。

コマンドレット実行例

Get-MgDirectoryRoleTemplate | select DisplayName,Id

画面2 画面2 Get-MgDirectoryRoleTemplateコマンドレットを実行し、実行結果から「DisplayName」と「Id」の2つの列だけを表示するようにして、ロールテンプレートIDを確認できるようにした

 一方、ロールテンプレートで調べたロールテンプレートIDから新しくロール割り当てをする場合は、「New-MgDirectoryRole」コマンドレットを使います(画面3)。

コマンドレット実行例

New-MgDirectoryRole -RoleTemplateId b0f54661-2d74-4c50-afa3-1ec803f12efe

画面3 画面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 画面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.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。