Microsoft Entra PowerShell 最佳做法

在本文中,您將學習如何實作 Microsoft Entra PowerShell 的最佳實務,包括應用程式註冊、安全強化、效能優化及維護策略。

了解這些作法對於降低安全風險、最佳化效能,以及讓系統維持在最新狀態至關重要。 它對於保護敏感資料並確保任何組織的順利運作至關重要。

註冊應用程式,而不是使用企業應用程式

你可以註冊針對不同使用情境量身打造的應用程式,並擁有特定權限,例如行銷或客服團隊。 此方法允許更細緻的權限管理,並在應用程式遭入侵時降低安全影響。 要建立註冊應用程式,請參見 建立自訂應用程式

請使用您註冊的應用程式登入,執行以下操作:

Connect-Entra -ClientId <your-custom-app-id> -TenantId <your-tenant-id>

你也可以使用別名 AppIdApplicationId 來取代 ClientId

安全性

在您的應用程式中應用以下同意與授權最佳實務以提升安全性:

  • 套用最低權限:只授予使用者和應用程式他們需要的最低權限權限來呼叫 Microsoft Entra 資源。 選擇最低權限。 例如,如果應用程式只讀取目前登入使用者的個人資料,請使用 grant User.Read 而非 User.ReadBasic.All。 完整權限清單請參見 權限參考

  • 使用 Disconnect-Entra:務必執行 Disconnect-Entra 來移除所有與帳號相關的憑證和上下文。 這個指令檔會正確地清理並關閉不再需要的連線。 它降低了如果會話保持開啟或他人存取你的 PowerShell 環境時,未經授權存取的風險。

  • 根據情境使用正確的權限類型:避免在同一應用程式中使用應用程式與委派權限。 如果你正在打造一個互動式應用程式,且有登入使用者在場,你的應用程式應該使用 委派權限。 然而,若您的應用程式在沒有登入使用者的情況下執行,例如背景服務或守護程序,您的應用程式應使用 應用程式權限

  • 謹慎管理應用程式權限:避免在互動情境中使用應用程式權限,以避免安全與合規風險,因為這可能無意中提升使用者權限並繞過管理員政策。

  • 在配置應用程式時請謹慎:設定會影響最終使用者與管理員的體驗,以及應用程式的採用與安全性。 例如:

    • 你的應用程式名稱、標誌、網域、出版商驗證狀態、隱私聲明及使用條款都會顯示在同意書及其他體驗中。 請仔細配置這些設定,讓最終使用者能理解。
    • 考慮誰同意你的應用程式——終端使用者或管理員——並設定應用程式適當 請求權限
    • 務必了解 靜態同意、動態同意與漸進同意的差異。
  • 注意權限膨脹 ——注意註冊應用程式隨時間累積的權限。

  • 運用安全性預設值和條件式存取——透過條件式存取(適用於已授權的組織)和安全性預設值(適用於未授權的組織),使用 Microsoft Entra 多重要素驗證來保護使用者。

  • 善用 Microsoft Entra 推薦功能 - Microsoft Entra 推薦功能會仔細監控租戶狀態,確保其保持安全與健康。 你可以看到使用過的應用程式、過期的憑證、過度權限的應用程式等等。

  • 限制應用程式登入僅限指定身份 ——此 Assignment Required 功能透過確保只有指定使用者能登入,協助管理應用程式的存取權限。

Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraServicePrincipal -Filter "DisplayName eq 'Contoso Demo App'" | Set-EntraServicePrincipal -AppRoleAssignmentRequired $true

效能最佳化

以下做法能幫助你優化使用 Microsoft Entra PowerShell 的效能:

使用過濾器

過濾則在伺服器端透過限制選取集合子集來進行,有助於減少不必要的網路流量與資料處理。

Get-EntraUser -Filter "startsWith(DisplayName,'Ada')"

只選擇必要屬性

透過參數 -Property 只取得所需的屬性來選擇所需的屬性。

定義頁面大小

對於回傳大量物件的請求,請使用參數將頁面大小增加至最大值 -top

Get-EntraUser -All -Top 999

Maintenance

請遵循以下維護最佳實務,確保您的 Microsoft Entra PowerShell 模組與腳本保持最新且運作最佳:

保持 Microsoft Entra PowerShell 模組最新

讓您的模組保持在最新狀態至關重要,原因有幾個。 首先,它讓你能享受最新的功能和增強,確保你能使用最新的指令匣和功能。 更重要的是,定期更新能提升你的安全防護。 我們的團隊持續執行安全修補與修補,協助保護您的系統免於漏洞侵害。

Tip

如果你使用 Microsoft Entra PowerShell 搭配 Azure 自動化,也要更新 Azure 自動化 帳號中的 PowerShell 模組。

Update-Module -Name Microsoft.Entra

更新模組後,移除舊版本。

使用 Get-Help

Get-Help 直接在命令列提供完整的文件。 它提供關於 Microsoft Entra PowerShell 指令集、函式、腳本及概念的詳細資訊,包括使用範例、可接受的參數與輸出。 Get-Help 促進高效的腳本撰寫,並幫助避免常見錯誤。

Get-Help Get-EntraUser -Detailed

使用除錯選項

-Debug透過提供詳細的診斷資訊,協助你在使用 Microsoft Entra PowerShell 時進行故障排除。 它能幫助你精確了解腳本的運作狀況,以及在開發和測試階段可能出現的問題。

Get-EntraUser -Top 1 -Debug

若要將除錯輸出串流傳送到日誌檔,請使用:

Get-EntraUser -Top 1 -Debug 5>> <your-log-filepath>
  • 5 - 代表串流編號 Debug Stream。 欲了解更多關於串流的資訊,請參閱 輸出串流
  • >> - 代表重定向運算子。 欲了解更多關於重定向運算子的資訊,請參閱 重定向運算子