IdentityOps.psd1

@{
    RootModule        = 'IdentityOps.psm1'
    ModuleVersion     = '1.0.1'
    GUID              = 'f7a3b1c2-9d4e-4f8a-b5c6-1e2d3f4a5b6c'
    Author            = 'IdentityOps Contributors'
    CompanyName       = 'Community'
    Copyright         = '(c) 2026 IdentityOps Contributors. MIT License.'
    Description       = 'IdentityOps is a Microsoft Graph-based PowerShell module that helps IT admins and security teams audit and secure their Entra ID (Azure AD) tenant. It provides 17 ready-to-use commands that detect common identity risks — expiring app secrets and certificates, guest accounts that never signed in, apps with no owners, users without MFA, over-privileged service principals, ownerless groups, dormant applications, orphaned role assignments, and more. It also audits Conditional Access policies for gaps, reports cross-tenant access risks, finds pending admin consent requests, and simplifies granting Graph API permissions to managed identities. Every command supports CSV export with -ToCsv for easy reporting. Supports 8 authentication flows including interactive, device code, client secret, certificate, managed identity, and access token.'
    PowerShellVersion = '7.2'
    RequiredModules   = @(
        @{ ModuleName = 'Microsoft.Graph.Authentication'; ModuleVersion = '2.0.0' }
    )
    FunctionsToExport = @(
        'Connect-IdentityOps',
        'Disconnect-IdentityOps',
        'Get-IOExpiringSecrets',
        'Grant-IOManagedIdentityPermission',
        'Get-IOStaleGuests',
        'Get-IOOrphanedApps',
        'Get-IOOverPrivilegedApps',
        'Get-IOUsersWithoutMFA',
        'Get-IOExpiringSSOCerts',
        'Export-IOConditionalAccessReport',
        'Get-IOServicePrincipalSignInFailures',
        'Get-IODormantApps',
        'Get-IOOrphanedRoleAssignments',
        'Get-IOPendingAdminConsent',
        'Get-IOOwnerlessGroups',
        'Get-IOPasswordOnlyAccounts',
        'Get-IOCrossTenantAccessReport'
    )
    CmdletsToExport   = @()
    VariablesToExport  = @()
    AliasesToExport    = @()
    PrivateData       = @{
        PSData = @{
            Tags         = @('Identity', 'MicrosoftGraph', 'EntraID', 'Security', 'Audit', 'Governance')
            LicenseUri   = 'https://opensource.org/licenses/MIT'
            ReleaseNotes = 'Initial release with 15 identity operations commands plus Connect/Disconnect.'
        }
    }
}