New-EntraServicePrincipalAppRoleAssignment
サービス プリンシパルをアプリケーション ロールに割り当てます。
構文
Default (既定)
New-EntraServicePrincipalAppRoleAssignment
-ServicePrincipalId <String>
-PrincipalId <String>
-Id <String>
-ResourceId <String>
[<CommonParameters>]
説明
New-EntraServicePrincipalAppRoleAssignment コマンドレットは、Microsoft Entra IDのアプリケーション ロールにサービス プリンシパルを割り当てます。
委任されたシナリオの場合、呼び出し元のユーザーには、次のMicrosoft Entraロールのいずれかが少なくとも 1 つ必要です。
- ディレクトリ同期アカウント
- ディレクトリ ライター
- ハイブリッド ID の管理者
- アイデンティティガバナンス管理者
- 特権ロール管理者
- ユーザー管理者
- アプリケーション管理者
- クラウド アプリケーション管理者
例
例 1: サービス プリンシパルにアプリ ロールを割り当てる
Connect-Entra -Scopes 'AppRoleAssignment.ReadWrite.All'
$clientServicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
$resourceServicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
$appRole = $resourceServicePrincipal.AppRoles | Where-Object { $_.Value -eq "User.ReadBasic.All" }
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $clientServicePrincipal.Id -PrincipalId $clientServicePrincipal.Id -Id $appRole.Id -ResourceId $resourceServicePrincipal.Id
例 2: アプリ ロールを別のサービス プリンシパルに割り当てる
Connect-Entra -Scopes 'AppRoleAssignment.ReadWrite.All'
$clientServicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
$servicePrincipalObject = Get-EntraServicePrincipal -Filter "displayName eq 'Box'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $clientServicePrincipal.Id -PrincipalId $clientServicePrincipal.Id -ResourceId $servicePrincipalObject.Id -Id $servicePrincipalObject.Approles[1].Id
Id AppRoleId CreationTimestamp PrincipalDisplayName PrincipalId PrincipalType ResourceDisplayName ResourceId
-- --------- ----------------- -------------------- ----------- ------------- ------------------- ----------
1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5 00000000-0000-0000-0000-000000000000 12-03-2024 11:05:29 Box aaaaaaaa-bbbb-cccc-1111-222222222222 ServicePrincipal Box aaaa0000-bb11-2222-33cc-444444dddddd
この例では、Microsoft Entra IDで別のサービス プリンシパルにアプリ ロールを割り当てる方法を示します。 コマンド Get-EntraServicePrincipal を使用して、サービス プリンシパル ID を取得できます。
-
-ServicePrincipalIdパラメーターは、アプリ ロールを割り当てるクライアント サービス プリンシパルの ObjectId を指定します。 -
-ResourceIdパラメーターは、リソース サービス プリンシパルの ObjectId を指定します。 -
-Idパラメーターは、クライアント サービス プリンシパルに割り当てるアプリ ロール (リソース サービス プリンシパルで定義) の ID を指定します。 リソース アプリでアプリ ロールが定義されていない場合は、00000000-0000-0000-0000-000000000000を使用できます。 -
-PrincipalIdパラメーターは、アプリ ロールを割り当てるクライアント サービス プリンシパルの ObjectId を指定します。
例 3: アプリ ロールをユーザーに割り当てる
Connect-Entra -Scopes 'AppRoleAssignment.ReadWrite.All'
$servicePrincipalObject = Get-EntraServicePrincipal -Filter "displayName eq 'Box'"
$user = Get-EntraUser -UserId 'PattiF@Contoso.com'
New-EntraServicePrincipalAppRoleAssignment `
-ServicePrincipalId $servicePrincipalObject.Id `
-ResourceId $servicePrincipalObject.Id `
-Id $servicePrincipalObject.Approles[1].Id `
-PrincipalId $user.Id
Id AppRoleId CreationTimestamp PrincipalDisplayName PrincipalId PrincipalType ResourceDisplayName ResourceId
-- --------- ----------------- -------------------- ----------- ------------- ------------------- ----------
2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6 00000000-0000-0000-0000-000000000000 12-03-2024 11:05:29 Box aaaaaaaa-bbbb-cccc-1111-222222222222 ServicePrincipal Box bbbb1111-cc22-3333-44dd-555555eeeeee
この例では、Microsoft Entra IDでユーザーにアプリ ロールを割り当てる方法を示します。
コマンド Get-EntraServicePrincipal を使用して、サービス プリンシパル ID を取得できます。コマンド Get-EntraUser を使用して、ユーザー ID を取得できます。
-
-ServicePrincipalIdパラメーターは、アプリのサービス プリンシパルの ObjectId を指定します。 -
-ResourceIdパラメーターは、アプリのサービス プリンシパルの ObjectId を指定します。 -
-Idパラメーターは、ユーザーに割り当てるアプリ ロールの ID (アプリのサービス プリンシパルで定義) を指定します。 リソース アプリに対してアプリ ロールが定義されていない場合は、00000000-0000-0000-0000-000000000000を使用して、アプリがユーザーに割り当てられていることを示すことができます。 -
-PrincipalIdパラメーターは、アプリ ロールを割り当てるユーザーの ObjectId を指定します。
例 4: アプリ ロールをグループに割り当てる
Connect-Entra -Scopes 'AppRoleAssignment.ReadWrite.All'
$servicePrincipalObject = Get-EntraServicePrincipal -Filter "displayName eq 'Box'"
$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
New-EntraServicePrincipalAppRoleAssignment `
-ServicePrincipalId $servicePrincipalObject.Id `
-ResourceId $servicePrincipalObject.Id `
-Id $servicePrincipalObject.Approles[1].Id `
-PrincipalId $group.Id
Id AppRoleId CreationTimestamp PrincipalDisplayName PrincipalId PrincipalType ResourceDisplayName ResourceId
-- --------- ----------------- -------------------- ----------- ------------- ------------------- ----------
3cccccc3-4dd4-5ee5-6ff6-7aaaaaaaaaa7 00000000-0000-0000-0000-000000000000 12-03-2024 11:05:29 Box aaaaaaaa-bbbb-cccc-1111-222222222222 ServicePrincipal Box cccc2222-dd33-4444-55ee-666666ffffff
この例では、Microsoft Entra IDのグループにアプリ ロールを割り当てる方法を示します。
コマンド Get-EntraServicePrincipal を使用して、サービス プリンシパル ID を取得できます。コマンド Get-EntraGroup を使用して、グループ ID を取得できます。
-
-ServicePrincipalIdパラメーターは、アプリのサービス プリンシパルの ObjectId を指定します。 -
-ResourceIdパラメーターは、アプリのサービス プリンシパルの ObjectId を指定します。 -
-Idパラメーターは、グループに割り当てるアプリ ロールの ID (アプリのサービス プリンシパルで定義) を指定します。 リソース アプリにアプリ ロールが定義されていない場合は、00000000-0000-0000-0000-000000000000を使用して、アプリがグループに割り当てられていることを示すことができます。 -
-PrincipalIdパラメーターは、アプリ ロールを割り当てるグループの ObjectId を指定します。
パラメーター
-Id
ID を指定します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-PrincipalId
プリンシパル ID を指定します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ResourceId
リソース ID を指定します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ServicePrincipalId
Microsoft Entra IDのサービス プリンシパルの ID を指定します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | オブジェクト識別子 |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
メモ
New-EntraServiceAppRoleAssignment は New-EntraServicePrincipalAppRoleAssignment の別名です。