New-AzureADServiceAppRoleAssignment

將應用程式角色指派給使用者、群組或其他服務主體。

Syntax

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

Description

New-AzureADServiceAppRoleAssignment Cmdlet 會將應用程式角色從資源服務主體指派給使用者、群組或其他服務主體。 指派給服務主體的應用程式角色也稱為應用程式許可權。

注意

此處描述的行為適用于 Connect-AzureAD 在沒有任何參數的情況下呼叫 ,或使用 Microsoft 擁有的應用程式身分識別。 若要深入瞭解使用客戶擁有的應用程式註冊或服務身分識別進行連線時的差異,請參閱 範例 4

範例

範例 1:將應用程式角色指派給另一個服務主體

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

在此範例中,用戶端服務主體會指派應用程式角色, (資源服務主體所定義的應用程式許可權) (例如 API) :

  • ObjectId:資源服務主體的 ObjectId (例如 API) 。
  • ResourceId:資源服務主體的 ObjectId (例如 API) 。
  • Id:) 資源服務主體上定義的應用程式角色識別碼 (,) 指派給用戶端服務主體。 如果資源應用程式上未定義任何應用程式角色,您可以使用 00000000-0000-0000-0000-000000000000
  • PrincipalId:您要指派應用程式角色之用戶端服務主體的 ObjectId。

注意

此範例適用于在沒有任何參數的情況下呼叫 時 Connect-AzureAD 。 請參閱 範例 4 ,以瞭解使用客戶擁有的應用程式註冊或服務身分識別連線時,如何使用此 Cmdlet。

範例 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:應用程式服務主體上定義的應用程式角色識別碼 () 指派給使用者。 如果資源應用程式未定義任何應用程式角色,您可以使用 00000000-0000-0000-0000-000000000000 來指出應用程式已指派給使用者。
  • PrincipalId:您要指派應用程式角色之使用者的 ObjectId。

注意

此範例適用于在沒有任何參數的情況下呼叫 時 Connect-AzureAD 。 請參閱 範例 4 ,以瞭解使用客戶擁有的應用程式註冊或服務身分識別連線時,如何使用此 Cmdlet。

範例 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:應用程式服務主體上定義的應用程式角色識別碼 () 指派給群組。 如果資源應用程式上未定義任何應用程式角色,您可以使用 00000000-0000-0000-0000-000000000000 來指出應用程式已指派給群組。
  • PrincipalId:您要指派應用程式角色之群組的 ObjectId。

注意

此範例適用于在沒有任何參數的情況下呼叫 時 Connect-AzureAD 。 請參閱 範例 4 ,以瞭解使用客戶擁有的應用程式註冊或服務身分識別連線時,如何使用此 Cmdlet。

範例 4:使用客戶擁有的應用程式或服務身分識別進行連線時

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

使用客戶擁有的應用程式註冊或服務身分識別連線到 Azure AD PowerShell 模組時,此 Cmdlet 的行為會變更,包括:

  • 以服務主體身分連線時,以及
  • 搭配針對客戶擁有的應用程式註冊或服務身分識別取得的存取權杖使用 AadAccessToken 參數時。

在這些情況下,此 Cmdlet 僅用於將應用程式角色指派給另一個服務主體,由 ObjectIdPrincipalId 參數識別:

  • ObjectId:您要指派應用程式角色之用戶端服務主體的 ObjectId。
  • ResourceId:資源服務主體的 ObjectId (例如 API) 。
  • Id:) 資源服務主體上定義的應用程式角色識別碼 (,) 指派給用戶端服務主體。 如果資源應用程式上未定義任何應用程式角色,您可以使用 00000000-0000-0000-0000-000000000000
  • PrincipalId:您要指派應用程式角色之用戶端服務主體的 ObjectId。

使用客戶擁有的應用程式或服務身分識別進行連線時,請分別使用 New-AzureADUserAppRoleAssignmentNew-AzureADGroupAppRoleAssignment 來建立使用者和群組的應用程式角色指派。

參數

-Id

指定要指派的資源服務主體上定義 (應用程式角色的識別碼) 。 如果資源應用程式上未定義任何應用程式角色,您可以使用 00000000-0000-0000-0000-000000000000 來指出資源應用程式或服務的指派,而不需指定應用程式角色。

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

-InformationAction

指定此 Cmdlet 如何回應資訊事件。 此參數可接受的值為:

  • 繼續
  • 忽略
  • 詢問
  • 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

指定資源服務主體的 ObjectId (,例如要指派給使用者、群組或其他服務主體的應用程式或 API) 。

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

指定資源服務主體的 ObjectId (,例如要指派給使用者、群組或其他服務主體的應用程式或 API) 。

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

備註

請參閱 New-AzureADServiceAppRoleAssignment 至 Microsoft Graph PowerShell 的移轉指南。