New-AzureADServiceAppRoleAssignment

ユーザー、グループ、または別のサービス プリンシパルにアプリ ロールを割り当てます。

構文

New-AzureADServiceAppRoleAssignment
   -ObjectId <String>
   [-InformationAction <ActionPreference>]
   [-InformationVariable <String>]
   -Id <String>
   -PrincipalId <String>
   -ResourceId <String>
   [<CommonParameters>]

説明

New-AzureADServiceAppRoleAssignment コマンドレットは、リソース サービス プリンシパルからユーザー、グループ、または別のサービス プリンシパルにアプリ ロールを割り当てます。 サービス プリンシパルに割り当てられたアプリ ロールは、アプリケーションのアクセス許可とも呼ばれます。

注意

ここで説明する動作は、パラメーターなしで呼び出された場合、または Microsoft 所有のアプリケーション ID を使用している場合 Connect-AzureAD に適用されます。 顧客所有のアプリ登録またはサービス ID を使用して接続するときの違いの詳細については、 例 4 を参照してください。

例 1: アプリ ロールを別のサービス プリンシパルに割り当てる

PS C:\> Connect-AzureAD
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $resource.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $client.ObjectId

この例では、クライアント サービス プリンシパルに、リソース サービス プリンシパル (API など) によって定義されたアプリ ロール (アプリケーション アクセス許可) が割り当てられます。

  • ObjectId: リソース サービス プリンシパル (API など) の ObjectId。
  • ResourceId: リソース サービス プリンシパル (API など) の ObjectId。
  • Id: クライアント サービス プリンシパルに割り当てるアプリ ロール (リソース サービス プリンシパルで定義) の ID。 リソース アプリでアプリ ロールが定義されていない場合は、 を使用 00000000-0000-0000-0000-000000000000できます。
  • PrincipalId: アプリ ロールを割り当てるクライアント サービス プリンシパルの ObjectId。

注意

この例は、 がパラメーターなしで呼び出された場合 Connect-AzureAD に適用されます。 顧客所有のアプリ登録またはサービス ID を使用して接続するときにこのコマンドレットを使用する方法については、 例 4 を参照してください。

例 2: ユーザーにアプリ ロールを割り当てる

PS C:\> Connect-AzureAD
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $resource.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $user.ObjectId

この例では、ユーザーにリソース アプリによって定義されたアプリ ロールが割り当てられます。

  • ObjectId: アプリのサービス プリンシパルの ObjectId。
  • ResourceId: アプリのサービス プリンシパルの ObjectId。
  • Id: ユーザーに割り当てるアプリ ロールの ID (アプリのサービス プリンシパルで定義されます)。 リソース アプリにアプリ ロールが定義されていない場合は、 を使用 00000000-0000-0000-0000-000000000000 して、アプリがユーザーに割り当てられていることを示すことができます。
  • PrincipalId: アプリ ロールを割り当てるユーザーの ObjectId。

注意

この例は、 がパラメーターなしで呼び出された場合 Connect-AzureAD に適用されます。 顧客所有のアプリ登録またはサービス ID を使用して接続するときにこのコマンドレットを使用する方法については、 例 4 を参照してください。

例 3: アプリ ロールをグループに割り当てる

PS C:\> Connect-AzureAD
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $resource.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $group.ObjectId

この例では、リソース アプリによって定義されたアプリ ロールがグループに割り当てられます。 割り当てられたグループの直接メンバーであるすべてのユーザーには、アプリ ロールが割り当てられていると見なされます。

  • ObjectId: アプリのサービス プリンシパルの ObjectId。
  • ResourceId: アプリのサービス プリンシパルの ObjectId。
  • Id: グループに割り当てるアプリ ロールの ID (アプリのサービス プリンシパルで定義されます)。 リソース アプリでアプリ ロールが定義されていない場合は、 を使用 00000000-0000-0000-0000-000000000000 して、アプリがグループに割り当てられているかどうかを示すことができます。
  • PrincipalId: アプリ ロールを割り当てるグループの ObjectId。

注意

この例は、 がパラメーターなしで呼び出された場合 Connect-AzureAD に適用されます。 顧客所有のアプリ登録またはサービス ID を使用して接続するときにこのコマンドレットを使用する方法については、 例 4 を参照してください。

例 4: 顧客所有のアプリまたはサービス ID を使用して接続する場合

PS C:\> Connect-AzureAD -TenantId $tenantOrDomain -ApplicationId $appId -CertificateThumbprint $thumb
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $client.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $client.ObjectId

このコマンドレットの動作は、顧客所有のアプリ登録またはサービス ID を使用して Azure AD PowerShell モジュールに接続すると変わります。次に示します。

  • サービス プリンシパルとして接続する場合、
  • パラメーターを AadAccessToken 、顧客所有のアプリ登録またはサービス ID に対して取得されたアクセス トークンと共に使用する場合。

このような状況では、このコマンドレットは、 パラメーターと PrincipalId パラメーターによって識別される別のサービス プリンシパルにアプリ ロールをObjectId割り当てるためにのみ使用されます。

  • ObjectId: アプリ ロールを割り当てるクライアント サービス プリンシパルの ObjectId。
  • ResourceId: リソース サービス プリンシパル (API など) の ObjectId。
  • Id: クライアント サービス プリンシパルに割り当てるアプリ ロール (リソース サービス プリンシパルで定義) の ID。 リソース アプリでアプリ ロールが定義されていない場合は、 を使用 00000000-0000-0000-0000-000000000000できます。
  • PrincipalId: アプリ ロールを割り当てるクライアント サービス プリンシパルの ObjectId。

顧客所有のアプリまたはサービス ID を使用して接続する場合は、 New-AzureADUserAppRoleAssignmentNew-AzureADGroupAppRoleAssignment を使用して、それぞれユーザーとグループのアプリ ロールの割り当てを作成します。

パラメーター

-Id

割り当てるアプリ ロール (リソース サービス プリンシパルで定義) の ID を指定します。 リソース アプリでアプリ ロールが定義されていない場合は、 を使用 00000000-0000-0000-0000-000000000000 して、アプリ ロールを指定せずに、リソース アプリまたはサービスの割り当てを示すことができます。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InformationAction

このコマンドレットが情報イベントに応答する方法を指定します。 このパラメーターの有効値は、次のとおりです。

  • 続行
  • Ignore
  • 照会
  • SilentlyContinue
  • Stop
  • [中断]
Type:ActionPreference
Aliases:infa
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InformationVariable

情報変数を指定します。

Type:String
Aliases:iv
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ObjectId

ユーザー、グループ、または別のサービス プリンシパルに割り当てるリソース サービス プリンシパル (アプリや API など) の ObjectId を指定します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PrincipalId

アプリ ロールが割り当てられているユーザー、グループ、またはその他のサービス プリンシパルの ObjectId を指定します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ResourceId

ユーザー、グループ、または別のサービス プリンシパルに割り当てるリソース サービス プリンシパル (アプリや API など) の ObjectId を指定します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

メモ

Microsoft Graph PowerShell への New-AzureADServiceAppRoleAssignment の移行ガイド を参照してください。