如何連接到 Microsoft Graph PowerShell

Jacki

有多種方法可以連接到 Microsoft Graph PowerShell 來管理 Microsoft 365 和 Azure 租戶。哪一種方法適合您取決於您​​想要什麼。一個很好的例子是連接到 Microsoft Graph PowerShell 以自動執行 Microsoft Graph PowerShell 腳本,無需用戶交互。在本文中,您將了解如何使用三種不同的方法連接到 Microsoft Graph PowerShell。

先決條件

您需要在系統上安裝 Microsoft Graph PowerShell 模塊。

以管理員身份啟動 Windows PowerShell 並運行以下命令。

Install-Module Microsoft.Graph -Force

重要的:在運行 cmdlet 或腳本之前,請務必更新到最新的 Microsoft Graph PowerShell 模塊版本,以防止出現錯誤和不正確的結果。

第一種方法是您大部分時間都會使用的方法,因為您想要使用您的帳戶連接到 Microsoft Graph 並使用命令。

Connect-MgGraph -Scopes "User.Read.All"

驗證您的憑據,然後您將返回到 PowerShell 窗口。

方法 2 – 如何使用基於證書的身份驗證 CBA 連接到 Microsoft Graph

第二種方法是在 Azure 中註冊具有權限的應用程序。讓我們完成以下步驟,並為無人值守腳本設置基於 Microsoft Graph 證書的身份驗證。

1. 在Azure中註冊應用程序

要在 Microsoft Entra ID 中註冊應用程序,請按照下列步驟操作:

  1. 登錄到微軟 Entra 管理中心
  2. 擴張Azure 活動目錄
  3. 點擊應用程序 > 應用程序註冊
  4. 選擇新註冊
  1. 填寫姓名MSGraph-自動化
  2. 選擇任何組織目錄(任何 Azure AD 目錄 - 多租戶)中的帳戶和個人 Microsoft 帳戶
  3. 點擊登記
  1. MSGraph 自動化應用程序概述出現
  2. 複製申請(客戶 ID)目錄(租戶)ID並將其粘貼到記事本中,因為稍後連接到 Microsoft Graph 時需要它

2.配置Azure應用程序API權限

您需要按照以下步驟向您創建的 MSGraph-Automation 應用程序添加 API 權限:

  1. 點擊API 權限 > 添加權限
  1. 選擇Microsoft API > Microsoft Graph
  1. 選擇應用程序權限
  2. 搜尋用戶.read.all
  3. 擴張用戶並選擇用戶.閱讀.全部
  4. 點擊添加權限
  1. 點擊授予管理員同意
  2. 點擊是的
  1. 狀態顯示為綠色複選標記

現在應用程序已註冊並設置了 API 權限,我們可以配置兩種身份驗證方法;證書或客戶端秘密。

3.生成自簽名證書

要生成自簽名證書,請使用 Windows PowerShell 登錄到任何 Windows Server 或桌面。最好在要運行無人值守 PowerShell 腳本的計算機上生成證書。

當您將自簽名證書上傳到 Azure 中的應用程序時,以及如果您想在其他系統上使用該證書,您需要在後面的步驟中使用自簽名證書。

筆記:默認情況下,自簽名證書的有效期為一年。

在本例中,我們為自簽名證書添加了 5 年,因此我們不必每年更新它。

$mycert = New-SelfSignedCertificate -DnsName "exoip.com" -CertStoreLocation "cert:LocalMachineMy" -NotAfter (Get-Date).AddYears(5) -KeySpec KeyExchange -FriendlyName "MSGraph Automation"

確認證書並複制指紋並將其粘貼到記事本中。稍後連接到 Microsoft Graph 時將需要它。

$mycert | Select-Object -Property Subject,Thumbprint,NotBefore,NotAfter

這就是輸出的樣子。

Subject      Thumbprint                               NotBefore           NotAfter           
-------      ----------                               ---------           --------           
CN=exoip.com 384010504F6B495B6D53B1C55DC6C1A7273081AC 7/7/2023 6:14:36 PM 7/7/2028 6:24:36 PM

將證書導出到.cer 文件

你會需要那個.cer 文件當您將其上傳到 Azure 應用程序(您將在後續步驟中創建該應用程序)時。

$mycert | Export-Certificate -FilePath "C:tempMSGraphAutomationCert.cer"

出現輸出。

    Directory: C:temp

Mode                LastWriteTime         Length Name                     
----                -------------         ------ ----                     
-a----         7/7/2023   6:25 PM            796 MSGraphAutomationCert.cer

將證書導出到.pfx 文件

你會需要那個.pfx 文件使用另一台計算機通過基於證書的身份驗證進行連接時。複製或發送.pfx 文件並將其安裝到其他機器上。

$mycert | Export-PfxCertificate -FilePath "C:tempMSGraphAutomationCert.pfx" -Password $(ConvertTo-SecureString -String "P@ssw0Rd1234" -AsPlainText -Force)

出現輸出。

    Directory: C:temp

Mode                LastWriteTime         Length Name                     
----                -------------         ------ ----                     
-a----         7/7/2023   6:26 PM           2717 MSGraphAutomationCert.pfx

4. 將證書上傳到應用程序

您需要上傳您在上一步中創建的自簽名證書:

  1. 點擊證書和秘密
  2. 點擊證書 > 上傳證書
  3. 單擊瀏覽圖標並選擇自簽名MSGraphAutomationCert.cer 文件C:溫度
  4. 添加描述MS Graph 自動化證書
  5. 點擊添加
  1. 證書出現在列表中

筆記:確認它具有與您在上一步中導出的證書指紋相同的證書指紋。

5. 使用基於證書的身份驗證連接到 Microsoft Graph

啟動 Windows PowerShell ISE 或 Visual Studio Code 並填寫以下三個變量以使用基於證書的身份驗證連接到 Microsoft Graph PowerShell:

  1. $客戶端ID
  2. $租戶ID
  3. $CertificateThumbPrint
# Configuration
$ClientId = "0a613e88-a189-4eac-b8c3-055196fd04d6"
$TenantId = "eb403171-a4ec-4d98-a08f-1876318c9deb"
$CertificateThumbprint = "384010504F6B495B6D53B1C55DC6C1A7273081AC"

# Connect to Microsoft Graph with CBA
Connect-MgGraph -ClientId $ClientId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint

現在您已連接到 Microsoft Graph PowerShell,請運行 Get-MgUser cmdlet 以檢索用戶。

Get-MgUser

方法 3 – 如何使用客戶端密鑰連接到 Microsoft Graph

第三種方法是在 Azure 中註冊具有權限的應用程序。讓我們完成以下步驟並為無人值守腳本設置 Microsoft Graph 客戶端密鑰。

1. 在Azure中註冊應用程序

如果您沒有執行此操作,請執行上述步驟在 Azure 中註冊應用程序。

2.配置Azure應用程序API權限

如果您沒有執行此操作,請執行上述步驟來配置 Azure 應用程序 API 權限。

3. 添加客戶端密碼

您需要添加應用程序在請求令牌時用來證明其身份的客戶端密鑰。

  1. 點擊證書和秘密
  2. 點擊客戶端機密 > 新客戶端機密
  3. 給它描述MS Graph 自動化秘密
  4. 選擇到期日期730 天(24 個月)
  5. 點擊添加
  1. 複製客戶秘密值並將其粘貼到記事本中,因為在下一步連接到 Microsoft Graph 時將需要它

4. 使用客戶端密鑰連接到 Microsoft Graph

啟動 Windows PowerShell ISE 或 Visual Studio Code 並填寫以下三個變量以使用客戶端密鑰連接到 Microsoft Graph PowerShell:

  1. $客戶端ID
  2. $租戶ID
  3. $ClientSecret
# Configuration
$ClientId = "0a613e88-a189-4eac-b8c3-055196fd04d6"
$TenantId = "eb403171-a4ec-4d98-a08f-1876318c9deb"
$ClientSecret = "Kos8Q~nVLcjmmyGSY68qDg4zbdF8f51L2EM50ac5"

# Convert the client secret to a secure string
$ClientSecretPass = ConvertTo-SecureString -String $ClientSecret -AsPlainText -Force

# Create a credential object using the client ID and secure string
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ClientId, $ClientSecretPass

# Connect to Microsoft Graph with Client Secret
Connect-MgGraph -TenantId $tenantId -ClientSecretCredential $ClientSecretCredential

現在您已連接到 Microsoft Graph PowerShell,請運行獲取 MgUsercmdlet 來檢索用戶。

另請閱讀:如何修復 Microsoft Entra Connect Sync 停止服務器關閉錯誤

Get-MgUser

就是這樣!

結論

您學習瞭如何使用三種方法連接到 Microsoft Graph PowerShell。完成分步指南後,您可以通過 Microsoft Graph PowerShell 通過用戶交互(方法 1)或無需用戶交互的無人值守腳本(方法 2/3)進行身份驗證。所有這些方法都非常適合使用。

您喜歡這篇文章嗎?您可能還喜歡使用 PowerShell 從 CSV 創建 Microsoft Entra ID 用戶。不要忘記關注我們並分享這篇文章。