ค้นหาเว็บไซต์

วิธีเชื่อมต่อกับ Microsoft Graph PowerShell


มีวิธีการต่างๆ ในการเชื่อมต่อกับ 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
Install-Module Microsoft.Graph.Beta -AllowClobber -Force

ข้อสำคัญ: ติดตั้งโมดูล Microsoft Graph PowerShell และ Microsoft Graph Beta PowerShell เสมอ นั่นเป็นเพราะบาง cmdlet ยังไม่พร้อมใช้งานในเวอร์ชันสุดท้าย และจะไม่ทำงาน อัปเดตทั้งสองโมดูลเป็นเวอร์ชันล่าสุดก่อนที่คุณจะเรียกใช้ cmdlet หรือสคริปต์เพื่อป้องกันข้อผิดพลาดและผลลัพธ์ที่ไม่ถูกต้อง

วิธีที่ 1 - วิธีเชื่อมต่อกับ Microsoft Graph ด้วยการโต้ตอบกับผู้ใช้

วิธีแรกคือวิธีที่คุณจะใช้บ่อยที่สุดเนื่องจากคุณต้องการเชื่อมต่อกับ Microsoft Graph ด้วยบัญชีของคุณและใช้คำสั่ง

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

ตรวจสอบด้วยข้อมูลประจำตัวของคุณ และคุณจะกลับไปที่หน้าต่าง PowerShell

วิธีที่ 2 - วิธีเชื่อมต่อกับ Microsoft Graph ด้วย CBA การรับรองความถูกต้องตามใบรับรอง

วิธีที่สองคือการลงทะเบียนแอปพลิเคชันใน Azure ด้วยสิทธิ์ ทำตามขั้นตอนด้านล่างและตั้งค่าการรับรองความถูกต้องตามใบรับรอง Microsoft Graph สำหรับสคริปต์ที่ไม่ต้องใส่ข้อมูล

1. ลงทะเบียนแอปพลิเคชันใน Azure

หากต้องการลงทะเบียนแอปพลิเคชันใน Azure AD ให้ทำตามขั้นตอนเหล่านี้:

  1. ลงชื่อเข้าใช้ศูนย์การจัดการ Microsoft Entra
  2. ขยาย Azure Active Directory
  3. คลิกที่ แอปพลิเคชัน > การลงทะเบียนแอป
  4. เลือกการลงทะเบียนใหม่

  1. กรอกชื่อ MSGraph-Automation
  2. เลือก บัญชีในไดเร็กทอรีองค์กรใด ๆ (ไดเร็กทอรี Azure AD ใด ๆ - ผู้เช่าหลายราย) และบัญชี Microsoft ส่วนบุคคล
  3. คลิก ลงทะเบียน

  1. แอปพลิเคชัน MSGraph-Automation ภาพรวม จะปรากฏขึ้น
  2. คัดลอก แอปพลิเคชัน (รหัสไคลเอ็นต์) และ รหัสไดเรกทอรี (ผู้เช่า) และวางลงใน Notepad เนื่องจากคุณจะต้องใช้ในภายหลังเมื่อเชื่อมต่อกับ Microsoft Graph

2. กำหนดค่าสิทธิ์ API ของแอปพลิเคชัน Azure

คุณต้องเพิ่มสิทธิ์ API ให้กับแอปพลิเคชัน MSGraph-Automation ที่คุณสร้างขึ้น โดยทำตามขั้นตอนด้านล่าง:

  1. คลิกที่ การอนุญาต API > เพิ่มการอนุญาต

  1. เลือก Microsoft API > Microsoft Graph

  1. เลือกสิทธิ์ของแอปพลิเคชัน
  2. ค้นหา user.read.all
  3. ขยาย ผู้ใช้ และเลือก User.Read.All
  4. คลิก เพิ่มการอนุญาต

  1. คลิกที่ ให้คำยินยอมของผู้ดูแลระบบ
  2. คลิกใช่

  1. สถานะจะแสดงเครื่องหมายถูกสีเขียว

เมื่อลงทะเบียนแอปพลิเคชันและตั้งค่าสิทธิ์ API แล้ว เราสามารถกำหนดค่าการตรวจสอบสิทธิ์ได้สองวิธี ใบรับรองหรือความลับของลูกค้า

3. สร้างใบรับรองที่ลงนามด้วยตนเอง

หากต้องการสร้างใบรับรองที่ลงนามด้วยตนเอง ให้เข้าสู่ระบบ Windows Server หรือเดสก์ท็อปด้วย Windows PowerShell วิธีที่ดีที่สุดคือสร้างใบรับรองบนเครื่องที่คุณต้องการเรียกใช้สคริปต์ PowerShell แบบอัตโนมัติ

คุณต้องมีใบรับรองที่ลงนามด้วยตนเองในภายหลังในขั้นตอนเมื่อคุณอัปโหลดไปยังแอปพลิเคชันใน Azure และหากคุณต้องการใช้ใบรับรองบนระบบอื่น

หมายเหตุ: ตามค่าเริ่มต้น ใบรับรองที่ลงนามด้วยตนเองจะมีอายุการใช้งานหนึ่งปี

ในกรณีนี้ เราได้เพิ่มเวลา 5 ปีให้กับใบรับรองที่ลงนามด้วยตนเอง ดังนั้นเราจึงไม่จำเป็นต้องต่ออายุทุกปี

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

ยืนยันใบรับรองและคัดลอก ThumbPrint และวางลงใน Notepad คุณจะต้องใช้ในภายหลังเมื่อเชื่อมต่อกับ 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:\temp\MSGraphAutomationCert.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:\temp\MSGraphAutomationCert.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:\temp
  4. เพิ่มคำอธิบาย ใบรับรองการทำงานอัตโนมัติของกราฟ MS
  5. คลิกเพิ่ม

  1. ใบรับรองจะปรากฏในรายการ

หมายเหตุ: ยืนยันว่ามีรหัสประจำตัวใบรับรองเดียวกันกับที่คุณส่งออกในขั้นตอนก่อนหน้า

5. เชื่อมต่อกับ Microsoft Graph ด้วยการรับรองความถูกต้องตามใบรับรอง

เริ่ม Windows PowerShell ISE หรือ Visual Studio Code และกรอกตัวแปรสามตัวด้านล่างเพื่อเชื่อมต่อกับ Microsoft Graph PowerShell ด้วยการรับรองความถูกต้องตามใบรับรอง:

  1. $ClientId
  2. $รหัสผู้เช่า
  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 Client Secret สำหรับสคริปต์ที่ไม่ต้องดูแล

1. ลงทะเบียนแอปพลิเคชันใน Azure

ทำตามขั้นตอนข้างต้นเพื่อลงทะเบียนแอปพลิเคชันใน Azure หากคุณไม่ได้ทำเช่นนี้

2. กำหนดค่าสิทธิ์ API ของแอปพลิเคชัน Azure

ทำตามขั้นตอนข้างต้นเพื่อกำหนดค่าสิทธิ์อนุญาต API ของแอปพลิเคชัน Azure หากคุณไม่ได้ทำเช่นนี้

3. เพิ่มความลับของลูกค้า

คุณต้องเพิ่มรหัสลับไคลเอ็นต์ที่แอปพลิเคชันใช้เพื่อพิสูจน์ตัวตนเมื่อขอโทเค็น

  1. คลิกที่ ใบรับรองและความลับ
  2. คลิก รหัสลับไคลเอ็นต์ > รหัสลับไคลเอ็นต์ใหม่
  3. ให้คำอธิบาย MS Graph Automation Secret
  4. เลือกวันที่หมดอายุ 730 วัน (24 เดือน)
  5. คลิกเพิ่ม

  1. คัดลอก ค่าความลับไคลเอ็นต์ และวางลงใน Notepad เนื่องจากคุณจะต้องใช้ในขั้นตอนถัดไปเมื่อเชื่อมต่อกับ Microsoft Graph

4. เชื่อมต่อกับ Microsoft Graph ด้วยรหัสลับไคลเอ็นต์

เริ่ม Windows PowerShell ISE หรือ Visual Studio Code และกรอกตัวแปรสามตัวด้านล่างเพื่อเชื่อมต่อกับ Microsoft Graph PowerShell ด้วยรหัสลับไคลเอ็นต์:

  1. $ClientId
  2. $รหัสผู้เช่า
  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 แล้ว ให้เรียกใช้ Get-MgUser cmdlet เพื่อดึงข้อมูลผู้ใช้

Get-MgUser

แค่นั้นแหละ!

อ่านเพิ่มเติม: ต่ออายุความลับของลูกค้าใน Microsoft Entra ID »

บทสรุป

คุณได้เรียนรู้วิธีเชื่อมต่อกับ Microsoft Graph PowerShell ด้วยสามวิธี ทำตามคำแนะนำทีละขั้นตอน และคุณสามารถตรวจสอบสิทธิ์ด้วย Microsoft Graph PowerShell ด้วยการโต้ตอบกับผู้ใช้ (วิธีที่ 1) หรือไม่มีการโต้ตอบกับผู้ใช้สำหรับสคริปต์แบบอัตโนมัติ (วิธีที่ 2/3) วิธีการทั้งหมดเหล่านี้ใช้งานได้ดีเยี่ยม

คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการสร้างผู้ใช้ Microsoft Entra ID จาก CSV ด้วย PowerShell อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง