本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-MgUserAppRoleAssignment」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Microsoft Entra ID」(旧称:Microsoft Azure Active Directory)のエンタープライズアプリケーションに対してアクセス許可を設定する「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への接続とアクセス許可を与えておくことが前提条件になります。
オプション | 意味 |
---|---|
-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行目で文字列「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
上記コマンドレット実行例では、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.