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-EntraServiceAppRoleAssignmentNew-EntraServicePrincipalAppRoleAssignment の別名です。