建立自訂應用程式

在本文中,您將學習如何使用 Microsoft Entra PowerShell 建立自訂應用程式並賦予其權限。 此過程包括定義角色、指派使用者與群組,以及設定 API 權限以有效管理 Microsoft Entra 資源。

了解這些步驟對於安全管理存取權及確保應用程式擁有適當權限至關重要。 它有助於維持 Microsoft Entra 生態系統的安全性與營運效率。

先決條件

要建立自訂應用程式並授予權限,你需要:

使用 PowerShell 建立應用程式

使用自訂應用程式來隔離並限制 Microsoft Entra 資源所授予的權限。

# Connect to Entra with required scopes
Connect-Entra -Scopes 'Application.ReadWrite.All'

# Define application name and redirect URI
$appName = 'Entra PowerShell Helpdesk App'
$redirectUri = 'http://localhost'

# Create a new application
$app = New-EntraApplication -DisplayName $appName -PublicClient @{ RedirectUris = $redirectUri } -IsFallbackPublicClient $False

# Create a service principal for the application
$servicePrincipal = New-EntraServicePrincipal -AppId $app.AppId

使用 PowerShell 啟用必須指派功能

# Set service principal parameters
Set-EntraServicePrincipal -ServicePrincipalId $servicePrincipal.Id -AppRoleAssignmentRequired $True

使用 PowerShell 指派使用者與群組

# Get a user and a group
$user = Get-EntraUser -UserId 'AdeleV@contoso.com'
$group = Get-EntraGroup -Search 'Sales and Marketing'

# Assign users and groups to the application
$emptyGuidUser = [Guid]::Empty.ToString()
New-EntraUserAppRoleAssignment -ObjectId $user.Id -PrincipalId $user.Id -ResourceId $servicePrincipal.Id -Id $emptyGuidUser

$emptyGuidGroup = [Guid]::Empty.ToString()
New-EntraGroupAppRoleAssignment -GroupId $group.Id -PrincipalId $group.Id -ResourceId $servicePrincipal.Id -Id $emptyGuidGroup

使用 PowerShell 定義所需的資源與權限

# Get Graph service principal
$graphApiId = '00000003-0000-0000-c000-000000000000'
$graphServicePrincipal = Get-EntraServicePrincipal -Filter "AppId eq '$graphApiId'"
$delegatedPermission = 'User.Read.All'
$app = Get-EntraApplication -Filter "DisplayName eq '$appName'"

# Create resource access object
$resourceAccessDelegated = New-Object Microsoft.Open.MSGraph.Model.ResourceAccess
$resourceAccessDelegated.Id = ((Get-EntraServicePrincipal -ServicePrincipalId $graphServicePrincipal.Id).Oauth2PermissionScopes | Where-Object { $_.Value -eq $delegatedPermission }).Id
$resourceAccessDelegated.Type = 'Scope'

# Create required resource access object
$requiredResourceAccessDelegated = New-Object Microsoft.Open.MSGraph.Model.RequiredResourceAccess
$requiredResourceAccessDelegated.ResourceAppId = $graphApiId
$requiredResourceAccessDelegated.ResourceAccess = $resourceAccessDelegated

# Set application required resource access
Set-EntraApplication -ApplicationId $app.Id -RequiredResourceAccess $requiredResourceAccessDelegated

使用 PowerShell 為應用程式指派 API 權限

你可以為應用程式指派委派權限或應用程式權限。

$delegatedPermission = 'User.Read.All'
$graphApiId = '00000003-0000-0000-c000-000000000000'
$servicePrincipal = Get-EntraServicePrincipal -Filter "DisplayName eq '$appName'"
$graphServicePrincipal = Get-EntraServicePrincipal -Filter "AppId eq '$graphApiId'"

# Grant OAuth2 permission
New-EntraOauth2PermissionGrant -ClientId $servicePrincipal.Id -ConsentType 'AllPrincipals' -ResourceId $graphServicePrincipal.Id -Scope $delegatedPermission

Resources

下載並執行完整腳本:

在 Microsoft Entra 系統管理中心 建立應用程式

若要建立使用 Microsoft Entra PowerShell 連接 Microsoft Entra ID 的自訂應用程式,請依照以下章節的步驟操作。 使用自訂應用程式來隔離並限制 Microsoft Entra 資源所授予的權限。

  1. 請至少以雲端應用程式管理員身份登入Microsoft Entra 管理中心。
  2. 瀏覽到身份>申請>應用程式註冊,然後選擇新註冊。
  3. 輸入你的應用程式名稱,例如 Entra PowerShell Five。
  4. 對於支援帳號類型,請在此組織目錄中選擇帳號。
  5. 對於 重定向 URI ,請從下拉選單中選擇: - 公共客戶端/原生 - URI 值: http://localhost
  6. 請選取註冊。

Note

在應用程式的 概覽 區塊,複製應用程式(客戶端 ID)和目錄(租戶)ID。 你在連接 Microsoft Entra ID 時使用這些數值。

在 Microsoft Entra 系統管理中心啟用需要指派功能

要管理你的應用程式在租戶中可存取的資源,請在 企業應用程式 面板中找到該應用程式的服務主體。

  1. 瀏覽至身份應用程式>>企業應用程式>所有應用程式並選擇您所建立的應用程式。
  2. 在 管理 下,選取 屬性,並將 需要指派嗎? 設定為 是。
  3. 選取 [儲存]。

在 Microsoft Entra 系統管理中心指派使用者和群組

  1. 在 [管理] 下選取 [使用者和群組]。
  2. 選擇 新增使用者/群組 ,並新增允許使用此應用程式的使用者與群組。
  3. 新增所有使用者和群組後,選擇 指派。

在 Microsoft Entra 系統管理中心 中為應用程式指派 API 權限

你需要為新應用程式設定 Microsoft Graph 權限,才能連接到 Microsoft Entra ID 並管理 Microsoft Entra 資源。

  1. 瀏覽至 身份>申請>應用程式註冊>所有應用程式 並選擇您所建立的應用程式。
  2. 在 API 權限下,選取 新增權限>,再選取 Microsoft API > Microsoft Graph。
  3. 選擇你需要的權限類型,是委派權限或應用程式權限。
    • 如果你需要登入應用程式以管理 Microsoft Entra ID 中的資源,請選擇委派權限。
    • 如果你想讓應用程式自行存取 Microsoft Entra 資源而不需使用者互動,請選擇應用程式權限
  4. 搜尋所需的權限,例如 User.Read.All。
  5. 選取 授與 TenantName 管理員同意。 選擇 「是」。 請確保狀態顯示綠色勾勾。

使用新應用程式登入

你現在可以透過以下平台使用新建立的應用程式:

Connect-Entra -ClientId <Your_APPLICATION_Id_Here> -TenantId <Your_TENANT_Id_Here>

更多連線選項,請參閱 Connect-Entra 指令細節。