在本文中,您將學習如何實作 Microsoft Entra PowerShell 的最佳實務,包括應用程式註冊、安全強化、效能優化及維護策略。
了解這些作法對於降低安全風險、最佳化效能,以及讓系統維持在最新狀態至關重要。 它對於保護敏感資料並確保任何組織的順利運作至關重要。
註冊應用程式,而不是使用企業應用程式
你可以註冊針對不同使用情境量身打造的應用程式,並擁有特定權限,例如行銷或客服團隊。 此方法允許更細緻的權限管理,並在應用程式遭入侵時降低安全影響。 要建立註冊應用程式,請參見 建立自訂應用程式。
請使用您註冊的應用程式登入,執行以下操作:
Connect-Entra -ClientId <your-custom-app-id> -TenantId <your-tenant-id>
你也可以使用別名 AppId 或 ApplicationId 來取代 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>