ส่งออกใบรับรองการลงทะเบียนแอป Entra ID และรายงานการหมดอายุของความลับ
คุณต้องมีวิธีที่รวดเร็วในการแสดงใบรับรองหรือความลับการลงทะเบียนแอป Entra ID ทั้งหมดและวันหมดอายุ หากคุณไม่ต่ออายุก่อนเวลาดังกล่าว การเชื่อมต่อกับแอปจะไม่ทำงานอีกต่อไป ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องไม่ปล่อยให้ใบรับรองหรือความลับสำหรับการลงทะเบียนแอปหมดอายุ ในบทความนี้ คุณจะได้เรียนรู้วิธีส่งออกการลงทะเบียนแอป Entra ID พร้อมด้วยใบรับรองและวันหมดอายุของความลับไคลเอ็นต์ไปยังรายงานโดยใช้ Microsoft Graph PowerShell
ตรวจสอบวันหมดอายุของใบรับรองการลงทะเบียนและความลับใน Microsoft Entra
หากต้องการตรวจสอบว่าใบรับรองการลงทะเบียนแอปหรือความลับหมดอายุแล้ว ให้ทำตามขั้นตอนด้านล่าง:
- ลงชื่อเข้าใช้ศูนย์การจัดการ Microsoft Entra
- ขยาย ข้อมูลประจำตัว > แอปพลิเคชัน > การลงทะเบียนแอป
- เลือกแอปพลิเคชันทั้งหมด
- คลิกแอปพลิเคชันที่คุณต้องการตรวจสอบสถานะการหมดอายุของใบรับรอง
ในตัวอย่างของเรา เรามี 4 แอปพลิเคชัน และแอปพลิเคชัน Kairo แสดงว่าใบรับรองและความลับหมดอายุแล้ว
- คลิกใบรับรองและข้อมูลลับ
- เลือกใบรับรองหรือรหัสลับไคลเอ็นต์
ในตัวอย่างของเรา แอปพลิเคชัน Kairo มีเฉพาะข้อมูลลับไคลเอ็นต์และไม่มีใบรับรอง รหัสลับไคลเอนต์อันหนึ่งหมดอายุ (สีแดง) และอีกอันจะหมดอายุในไม่ช้า (สีส้ม)
หากต้องการต่ออายุรหัสลับไคลเอ็นต์ใน Microsoft Entra ID เราจำเป็นต้องสร้างรหัสลับไคลเอ็นต์ใหม่และลบรหัสลับไคลเอ็นต์ที่หมดอายุ
การพิจารณาแอปพลิเคชันทั้งหมดและตรวจสอบวันหมดอายุของใบรับรองหรือรหัสลับไคลเอ็นต์ รวมถึงสถานะ ต้องใช้เวลา ดังนั้น วิธีที่ดีที่สุดคือการเรียกใช้สคริปต์ PowerShell ที่สร้างรายงานที่มีข้อมูลทั้งหมด
มาดูสคริปต์ PowerShell ในขั้นตอนถัดไป
รับใบรับรองการลงทะเบียนแอป Entra ID และวันหมดอายุของความลับด้วย PowerShell
วิธีที่ดีในการรับการลงทะเบียนแอปทั้งหมดด้วยใบรับรองและวันหมดอายุของความลับคือการใช้ Microsoft Graph PowerShell
สคริปต์ Get-AppCertSecStatus.ps1 จะได้รับการลงทะเบียนแอปทั้งหมดใน Microsoft Entra ID และรวบรวมรายละเอียดต่อไปนี้:
- ชื่อแอปพลิเคชัน
- รหัสแอปพลิเคชัน
- หนังสือรับรองชื่อ
- ประเภทการลงชื่อเข้าใช้
- สร้างวันที่และเวลา
- วันที่เริ่มต้นและเวลา
- วันที่สิ้นสุดเวลา
- สถานะหมดอายุ
- ประเภทการรับรองความถูกต้อง
- วันที่เหลือ
- เจ้าของ
- รหัสเจ้าของ
ขั้นตอนที่ 1 เตรียมสคริปต์ Get-AppCertSecStatus PowerShell
สร้างสองโฟลเดอร์บนไดรฟ์ (C:):
- อุณหภูมิ
- สคริปต์
ดาวน์โหลดสคริปต์ Get-AppCertSecStatus.ps1 PowerShell และวางไว้ในโฟลเดอร์ C:\scripts สคริปต์จะส่งออกไฟล์ CSV ไปยังโฟลเดอร์ C:\temp
ตรวจสอบให้แน่ใจว่าไฟล์ไม่ได้ถูกบล็อกเพื่อป้องกันข้อผิดพลาดเมื่อเรียกใช้สคริปต์ อ่านเพิ่มเติมในบทความไม่มีข้อผิดพลาดในการเซ็นชื่อแบบดิจิทัลเมื่อเรียกใช้สคริปต์ PowerShell
อีกทางเลือกหนึ่งคือการคัดลอกและวางโค้ดด้านล่างลงใน Notepad ตั้งชื่อให้ว่า Get-AppCertSecStatus.ps1 และวางไว้ในโฟลเดอร์ C:\scripts
<#
.SYNOPSIS
Get-AppCertSecStatus.ps1
.DESCRIPTION
Export Entra ID app registrations certificates and secrets expiration date.
.LINK
www.alitajran.com/export-entra-id-app-registrations-certificates-secrets/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 01/14/2024 - Initial version
V1.10, 04/30/2024 - Added AppId property to the results
#>
# CSV file path to export
$CsvPath = "C:\temp\AppRegistrationsReport.csv"
# Connect to MgGraph with necessary scopes
Connect-MgGraph "Directory.Read.All", "Application.Read.All"
# Create an array
$Results = @()
# Get properties
$Properties = @(
'AppId',
'DisplayName',
'PasswordCredentials',
'KeyCredentials',
'Id',
'SignInAudience',
'CreatedDateTime'
)
# Get Applications
$Apps = Get-MgApplication -All -Property $Properties | Select-Object $Properties
foreach ($App in $Apps) {
# Get Owner information
$Owner = Get-MgApplicationOwner -All -ApplicationId $App.Id
$Username = if ($Owner) { $Owner.AdditionalProperties.userPrincipalName -join ';' } else { "N/A" }
$OwnerID = if ($Owner) { $Owner.Id -join ';' } else { "N/A" }
# Check application for client secret
if ($null -ne $App.PasswordCredentials) {
foreach ($Creds in $App.PasswordCredentials) {
# Calculate days left until expiration
$DaysLeft = ($Creds.EndDateTime - (Get-Date)).Days
# Create custom object for client secret results
$AppObject = [PSCustomObject]@{
ApplicationName = $App.DisplayName
ApplicationID = $App.AppId
CredentialName = $Creds.DisplayName
SignInType = $App.SignInAudience
CreatedDateTime = $App.CreatedDateTime
StartDateTime = $Creds.StartDateTime
EndDateTime = $Creds.EndDateTime
ExpireStatus = if ($Creds.EndDateTime -lt (Get-Date)) { "Expired" } else { "Not expired" }
AuthType = "Client_Secret"
DaysLeft = $DaysLeft
Owner = $Username
OwnerID = $OwnerID
}
# Output results to array
$Results += $AppObject
}
}
# Check application for certificate
if ($null -ne $App.KeyCredentials) {
foreach ($Cert in $App.KeyCredentials) {
# Calculate days left until expiration
$DaysLeft = ($Cert.EndDateTime - (Get-Date)).Days
# Create custom object for certificate results
$AppObject = [PSCustomObject]@{
ApplicationName = $App.DisplayName
ApplicationID = $App.AppId
CredentialName = $Cert.DisplayName
SignInType = $App.SignInAudience
CreatedDateTime = $App.CreatedDateTime
StartDateTime = $Cert.StartDateTime
EndDateTime = $Cert.EndDateTime
ExpireStatus = if ($Cert.EndDateTime -lt (Get-Date)) { "Expired" } else { "Not expired" }
AuthType = "Certificate"
DaysLeft = $DaysLeft
Owner = $Username
OwnerID = $OwnerID
}
# Output results to array
$Results += $AppObject
}
}
}
# Sort the results based on DaysLeft
$Results = $Results | Sort-Object -Property DaysLeft
# Export to CSV file
$Results | Export-Csv $CsvPath -Encoding utf8 -NoTypeInformation
# Out-GridView
$Results | Out-GridView -Title "Microsoft Entra ID app registrations report"- บรรทัดที่ 21: แก้ไขเส้นทางไฟล์ CSV
ขั้นตอนที่ 2 ติดตั้ง Microsoft Graph PowerShell
เรียกใช้ Windows PowerShell ในฐานะผู้ดูแลระบบและติดตั้ง Microsoft Graph PowerShell
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -Forceข้อสำคัญ: ติดตั้งโมดูล Microsoft Graph PowerShell และ Microsoft Graph Beta PowerShell เสมอ นั่นเป็นเพราะบาง cmdlet ยังไม่พร้อมใช้งานในเวอร์ชันสุดท้าย และจะไม่ทำงาน อัปเดตทั้งสองโมดูลเป็นเวอร์ชันล่าสุดก่อนที่คุณจะเรียกใช้ cmdlet หรือสคริปต์เพื่อป้องกันข้อผิดพลาดและผลลัพธ์ที่ไม่ถูกต้อง
ขั้นตอนที่ 3 เรียกใช้สคริปต์ Get-AppCertSecStatus PowerShell
รับใบรับรองการลงทะเบียนแอป Entra ID ทั้งหมดและวันหมดอายุของความลับ รวมถึงสถานะด้วย PowerShell
เรียกใช้คำสั่งด้านล่างเพื่อเรียกใช้สคริปต์ Get-AppCertSecStatus.ps1
c:\scripts\.\Get-AppCertSecStatus.ps1Out-GridView จะแสดงข้อมูลทั้งหมดที่คุณต้องการ
ขั้นตอนที่ 4 เปิดรายงานการลงทะเบียนแอป Entra ID
สคริปต์ PowerShell Get-AppCertSecStatus.ps1 ส่งออกการลงทะเบียนแอปทั้งหมดด้วยใบรับรองและสถานะการหมดอายุของความลับไคลเอ็นต์ไปยังไฟล์ CSV
ค้นหาไฟล์ AppRegistrationsReport.csv ในเส้นทาง C:\temp
เปิดไฟล์ CSV ด้วยแอปพลิเคชันที่คุณชื่นชอบ ในตัวอย่างของเรา มันคือ Microsoft Excel
ใบรับรองการลงทะเบียนแอป Entra ID และรายงานการหมดอายุของความลับไคลเอ็นต์ดูดี
อ่านเพิ่มเติม: กำหนดค่าการรับรองความถูกต้องตามใบรับรอง Exchange Online สำหรับสคริปต์ที่ไม่ต้องดูแล »
บทสรุป
คุณได้เรียนรู้วิธีส่งออกใบรับรองและความลับการลงทะเบียนแอป Entra ID ด้วย Microsoft Graph PowerShell เรียกใช้สคริปต์ จากนั้นจะรวบรวมข้อมูลทั้งหมดและส่งออกไปยังรายงานไฟล์ CSV ตรวจสอบให้แน่ใจว่าคุณต่ออายุใบรับรองหรือรหัสลับไคลเอ็นต์ก่อนที่จะหมดอายุ เพื่อให้การเชื่อมต่อกับแอปยังคงอยู่
คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการส่งออกรายงานผู้ใช้ที่ไม่ได้ใช้งาน Microsoft 365 อย่าลืมติดตามเราและแบ่งปันบทความนี้




