cancel
Showing results for 
Search instead for 
Did you mean: 
Disclaimer
JUMPCLOUD EXPRESSLY DISCLAIMS ALL REPRESENTATIONS, WARRANTIES, CONDITIONS, AND LIABILITIES OF ANY KIND ARISING FROM OR RELATED TO THIRD-PARTY SOFTWARE, SCRIPTS, REPOSITORIES, AND APIS. JUMPCLOUD IS NOT REQUIRED TO SUPPORT ANY SUCH THIRD-PARTY MATERIALS AND ALL RISKS RELATED TO THIRD-PARTY MATERIALS ARE YOUR RESPONSIBILITY. PLEASE ALSO REVIEW THE JUMPCLOUD TOS.

Is Your SSO Feeling Lonely? Identifying Unused SSO Applications in JumpCloud

shawnsong
Rising Star III
Rising Star III

Hi Folks,

Time flies, and we're already almost four months deep into 2024! As many organisations hustle to close the fiscal year of 2023, it's going to be a hectic month. And when it comes to budget talks, the echo through the halls remains: Spend cautiously. Continue cost saving.

That means more IT housekeeping — and, as always, I’m here to lend a hand (or a script). 🙂

 

What Is The Mission

This time around, we are shining a flashlight into the dark corners of your SSO applications, looking for signs of life. The goal? To unearth insights that will guide your decisions on where to allocate your SaaS budget wisely.

 

Let’s Get Started

TL;DR - Here is the script on my repo. 

Feel free to tweak the days if you are looking to dig deeper into the past, at line 17:

$Apps = Get-JcSdkApplication | select DisplayName,displaylabel,name,SsoUrl
$trackingDays = 30
$outCSVreport = @()

foreach ($app in $Apps){
    $report = "" | select AppDN,AppLabel,SSOUrl,Unused,last_5_activities

    $loggedOnEvents = get-jcevent -Service:('sso') -starttime:((get-date).AddDays(-$trackingDays)) `
     -SearchTermAnd @{"application.display_label"=$app.DisplayLabel } -ErrorAction SilentlyContinue
    $report.AppDN = $app.DisplayName
    $report.AppLabel = $app.DisplayLabel
    $report.SSOUrl = $app.SsoUrl

    if ($null -ne $loggedOnEvents) {
        Write-Host "$($app.DisplayName) has $($loggedOnEvents.Count) events in the past $trackingDays days!`n SSO url: $($app.SsoUrl)`n" -ForegroundColor Green
        $report.Unused = $false
        $report.last_5_activities = $loggedOnEvents | Join-String -Separator "`n"
    }
    
    else {
        Write-Host "$($app.DisplayName) is not been accessed in the past $trackingDays days!`n SSO url: $($app.SsoUrl)`n"
        $report.Unused = $true
        $report.last_5_activities = 'N/A'
    }
    $outCSVreport += $report
}
$outCSVreport | Export-Csv InactiveSSO_report.csv

Its output on the screen like this:shawnsong_0-1711612555933.png

And it will output a CSV report looks like this:shawnsong_1-1711612556029.png


And there you have it! Hope it helps to make informed decisions and champion cost-saving measures.

A big shoutout to @sidhanth  for sparking this idea! Happy cost-saving, folks!

 

 

1 REPLY 1

JC-ChrisTate
Rising Star III
Rising Star III

This is a clever way of identifying unused apps and saving cash. Thanks for sharing.