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

ส่งออกใบรับรองการลงทะเบียนแอป Entra ID และรายงานการหมดอายุของความลับ


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

ตรวจสอบวันหมดอายุของใบรับรองการลงทะเบียนและความลับใน Microsoft Entra

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

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

ในตัวอย่างของเรา เรามี 4 แอปพลิเคชัน และแอปพลิเคชัน Kairo แสดงว่าใบรับรองและความลับหมดอายุแล้ว

  1. คลิกใบรับรองและข้อมูลลับ
  2. เลือกใบรับรองหรือรหัสลับไคลเอ็นต์

ในตัวอย่างของเรา แอปพลิเคชัน Kairo มีเฉพาะข้อมูลลับไคลเอ็นต์และไม่มีใบรับรอง รหัสลับไคลเอนต์อันหนึ่งหมดอายุ (สีแดง) และอีกอันจะหมดอายุในไม่ช้า (สีส้ม)

หากต้องการต่ออายุรหัสลับไคลเอ็นต์ใน Microsoft Entra ID เราจำเป็นต้องสร้างรหัสลับไคลเอ็นต์ใหม่และลบรหัสลับไคลเอ็นต์ที่หมดอายุ

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

มาดูสคริปต์ PowerShell ในขั้นตอนถัดไป

รับใบรับรองการลงทะเบียนแอป Entra ID และวันหมดอายุของความลับด้วย PowerShell

วิธีที่ดีในการรับการลงทะเบียนแอปทั้งหมดด้วยใบรับรองและวันหมดอายุของความลับคือการใช้ Microsoft Graph PowerShell

สคริปต์ Get-AppCertSecStatus.ps1 จะได้รับการลงทะเบียนแอปทั้งหมดใน Microsoft Entra ID และรวบรวมรายละเอียดต่อไปนี้:

  1. ชื่อแอปพลิเคชัน
  2. รหัสแอปพลิเคชัน
  3. หนังสือรับรองชื่อ
  4. ประเภทการลงชื่อเข้าใช้
  5. สร้างวันที่และเวลา
  6. วันที่เริ่มต้นและเวลา
  7. วันที่สิ้นสุดเวลา
  8. สถานะหมดอายุ
  9. ประเภทการรับรองความถูกต้อง
  10. วันที่เหลือ
  11. เจ้าของ
  12. รหัสเจ้าของ

ขั้นตอนที่ 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 -Force
Install-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.ps1

Out-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 อย่าลืมติดตามเราและแบ่งปันบทความนี้

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