共用方式為


New-AzureADServiceAppRoleAssignment

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

語法

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

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

  • 以服務主體身分連線時,以及
  • 使用 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 來指出資源應用程式或服務的指派,而不需指定應用程式角色。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-InformationAction

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

  • 繼續
  • 忽略
  • 詢問
  • SilentlyContinue
  • Stop
  • 暫止
類型:ActionPreference
別名:infa
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-InformationVariable

指定資訊變數。

類型:String
別名:iv
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ObjectId

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

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-PrincipalId

指定要指派應用程式角色的使用者、群組或其他服務主體的 ObjectId。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ResourceId

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

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

備註

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