【 New-MgUserAppRoleAssignment 】コマンドレット――Microsoft Entra ID(旧Azure AD)エンタープライズアプリケーションのアクセス許可を設定するWindows PowerShell基本Tips(88)

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

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

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

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

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Microsoft Entra ID」(旧称:Microsoft Azure Active Directory)のエンタープライズアプリケーションに対してアクセス許可を設定する「New-MgUserAppRoleAssignment」コマンドレットです。

New-MgUserAppRoleAssignmentコマンドレットとは?

 「New-MgUserAppRoleAssignment」は、PowerShellを利用してMicrosoft Entra IDエンタープライズアプリケーションのアクセス許可を設定するためのコマンドレットです。

 なお、New-MgUserAppRoleAssignmentコマンドレットは、本連載第45回で解説した「Connect-MgGraph」コマンドレットで「Connect-MgGraph -Scopes "Application.ReadWrite.All","User.Read.All"」と実行して、Microsoft Entra IDへの接続とアクセス許可を与えておくことが前提条件になります。

New-MgUserAppRoleAssignmentコマンドレットの書式

New-MgUserAppRoleAssignment [オプション]


New-MgUserAppRoleAssignmentコマンドレットの主なオプション

オプション 意味
-UserId アクセス許可を割り当てるユーザーのユーザーIDを指定する
-PrincipalId アクセス許可を参照するユーザーのユーザーIDを指定する。省略可能
-ResourceId アプリケーションのサービスプリンシパルIDを指定する。省略可能
-AppRoleId アクセス許可に付随するロールのロールIDを割り当てる。省略可能

アプリケーションのサービスプリンシパルを参照する

 Microsoft Entra IDに登録されたエンタープライズアプリケーションに対してアクセス許可を割り当てる場合、「-ResourceId」オプションで「サービスプリンシパルID」を、「-AppRoleId」オプションで「ロールID」をそれぞれ指定する必要があります。これらのパラメーターは本連載第87回で解説したGet-MgServicePrincipal」コマンドレットで確認します(画面1)。

コマンドレット実行例

$sp=Get-MgServicePrincipal -All |Where-Object {$_.displayname -match "dropbox"}
$sp.Id
$sp.AppRoles

画面1 画面1 New-MgUserAppRoleAssignmentコマンドレットでアプリケーションのサービスプリンシパルを参照する

 上記コマンドレット実行例では、1行目で文字列「dropbox」を持つエンタープライズアプリケーションのサービスプリンシパルを確認し、$sp変数に保存しています。その後、2行目で「Dropbox Business」アプリケーションのサービスプリンシパルID、3行目でアプリケーションのロール一覧を参照しています。なお、ロール一覧のうち、「msiam_access」は「Default Access」というロールを意味します。


特定のエンタープライズアプリケーションにアクセス許可を設定する

 Get-MgServicePrincipalコマンドレットでサービスプリンシパルIDとアプリケーションのロールを確認し、アクセス許可を割り当てるユーザーを本連載第50回で解説したGet-MgUser」コマンドレットで確認したら、これらを全て指定してNew-MgUserAppRoleAssignmentコマンドレットでアクセス許可を割り当てます(画面2)。

コマンドレット実行例

$userid="7ee99b0f-d428-415a-bebe-0d4bc55b434c"
$sp=Get-MgServicePrincipal -All |Where-Object {$_.displayname -match "dropbox"}
New-MgUserAppRoleAssignment -UserId $userId -PrincipalId $userId -ResourceId $sp.id -AppRoleId ($sp.AppRoles | Where-Object { $_.DisplayName -eq "User"}).Id

画面2 画面2 New-MgUserAppRoleAssignmentコマンドレットで特定のエンタープライズアプリケーションにアクセス許可を設定する

 上記コマンドレット実行例では、1行目でMicrosoft Entra IDユーザーのユーザーIDを設定し、$userid変数に保存しています。2行目で文字列「dropbox」を持つエンタープライズアプリケーションのサービスプリンシパルを確認し、$sp変数に保存しました。3行目でNew-MgUserAppRoleAssignmentコマンドレットに続けて「-UserId」と「-PrincipalId」オプションでユーザーID、「-ResourceId」オプションでサービスプリンシパルID、「-AppRoleId」オプションでアプリケーションのロールをそれぞれ指定しています。アプリケーションのロールは「$sp.AppRoles」に格納して、ロール一覧からUserロールを割り当てるように指定しました。

筆者紹介

国井 傑(くにい すぐる)

株式会社エストディアン代表取締役。1997年からマイクロソフト認定トレーナーとして、Azure Active DirectoryやMicrosoft 365 Defenderなど、クラウドセキュリティを中心としたトレーニングを提供している。2007年からMicrosoft MVP for Enterprise Mobilityを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright © ITmedia, Inc. All Rights Reserved.

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

注目のテーマ

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

RSSについて

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

メールマガジン登録

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