{"id":50809884,"url":"https://github.com/Noble-Effeciency13/M365IdentityPosture","last_synced_at":"2026-06-30T11:00:30.384Z","repository":{"id":320098162,"uuid":"1080780364","full_name":"Noble-Effeciency13/M365IdentityPosture","owner":"Noble-Effeciency13","description":"PowerShell security reporting framework for Microsoft 365 identity posture assessment. Analyzes Authentication Context, PIM, Conditional Access \u0026 more.","archived":false,"fork":false,"pushed_at":"2026-03-16T07:25:53.000Z","size":335,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-16T09:49:55.030Z","etag":null,"topics":["authentication-context","azure-ad","compliance-reporting","conditional-access","entra-id","identity-governance","microsoft-365","microsoft-graph","pim","powershell","powershell-module","purview","security-assessment","security-reporting","zero-trust"],"latest_commit_sha":null,"homepage":"https://chanceofsecurity.com","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Noble-Effeciency13.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-21T21:22:49.000Z","updated_at":"2026-03-16T07:25:57.000Z","dependencies_parsed_at":"2025-10-22T00:19:51.377Z","dependency_job_id":"7b2f37f2-fc78-4964-b455-fb595084cb6d","html_url":"https://github.com/Noble-Effeciency13/M365IdentityPosture","commit_stats":null,"previous_names":["noble-effeciency13/m365identityposture"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Noble-Effeciency13/M365IdentityPosture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noble-Effeciency13%2FM365IdentityPosture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noble-Effeciency13%2FM365IdentityPosture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noble-Effeciency13%2FM365IdentityPosture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noble-Effeciency13%2FM365IdentityPosture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Noble-Effeciency13","download_url":"https://codeload.github.com/Noble-Effeciency13/M365IdentityPosture/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noble-Effeciency13%2FM365IdentityPosture/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34963641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication-context","azure-ad","compliance-reporting","conditional-access","entra-id","identity-governance","microsoft-365","microsoft-graph","pim","powershell","powershell-module","purview","security-assessment","security-reporting","zero-trust"],"created_at":"2026-06-13T04:00:19.016Z","updated_at":"2026-06-30T11:00:30.377Z","avatar_url":"https://github.com/Noble-Effeciency13.png","language":"PowerShell","funding_links":[],"categories":["Tools"],"sub_categories":["CLI"],"readme":"# M365IdentityPosture Module\n\nA comprehensive PowerShell module for security posture assessment and identity governance reporting across Microsoft 365, Azure, and hybrid environments.\n\n![PowerShell](https://img.shields.io/badge/PowerShell-7.0%2B-blue.svg)\n[![PSGallery Version](https://img.shields.io/powershellgallery/v/M365IdentityPosture)](https://www.powershellgallery.com/packages/M365IdentityPosture/1.1.0)\n[![PSGallery Downloads](https://img.shields.io/powershellgallery/dt/M365IdentityPosture)](https://www.powershellgallery.com/packages/M365IdentityPosture/1.1.0)\n![License](https://img.shields.io/badge/License-MIT-yellow.svg)\n\n## 📑 Table of Contents\n\n- [Overview](#-overview)\n- [What's Included](#-whats-included)\n- [Prerequisites](#-prerequisites)\n- [Installation](#-installation)\n- [Reports](#-reports)\n  - [Authentication Context Inventory](#-authentication-context-inventory)\n  - [Access Package Documentor](#-access-package-documentor)\n- [Common Features](#-common-features)\n- [Use Cases](#-use-cases)\n- [Module Architecture](#️-module-architecture)\n- [Troubleshooting](#-troubleshooting)\n- [Roadmap](#-roadmap--future-reports)\n- [Contributing](#-contributing)\n- [Author \u0026 Contributors](#-author---contributors)\n- [Changelog](#-changelog)\n- [Support](#-support)\n\n## 🎯 Overview\n\nM365IdentityPosture is an extensible PowerShell framework for security posture assessment and identity governance reporting across Microsoft 365, Azure AD/Entra ID, and hybrid environments. Built with a modular architecture, the framework provides specialized reports for different identity and access management scenarios, with each report generating interactive HTML output featuring runtime theme switching and comprehensive data visualization.\n\n## 🎁 What's Included\n\nThe module currently includes two comprehensive reports:\n\n- **🔐 Authentication Context Inventory**: Maps authentication context requirements and enforcement across Microsoft 365 services including Purview, Conditional Access, PIM, SharePoint, and Teams. Identifies security gaps and configuration issues.\n\n- **📦 Access Package Documentor**: Interactive graph-based visualization and documentation of Entitlement Management. Features Cytoscape.js graph visualization with filtering, search, zoom/pan controls, and multi-format export (PNG, Markdown, JSON). *Co-developed with Christian Frohn*.\n\nBoth reports generate interactive HTML with runtime theme switching (Classic/Light and Dark) and are designed for security auditors, compliance teams, and identity governance professionals.\n\n## 📋 Prerequisites\n\n### System Requirements\n\n- **PowerShell**: Version 7.0 or higher (PowerShell Core)\n- **Operating System**: Windows 10/11, Windows Server 2019+, macOS, Linux\n\n### Module Dependencies\n\nThis module **dynamically loads and unloads** its dependencies as needed for each reporting phase. You do **not** need to import all modules up front. The following modules are required and will be loaded automatically when needed:\n\n```powershell\n# Authentication Context Inventory dependencies\nMicrosoft.Graph.Authentication\nMicrosoft.Graph.Groups\nExchangeOnlineManagement\nMicrosoft.Online.SharePoint.PowerShell\n\n# Access Package Documentor dependencies\nMicrosoft.Graph.Authentication\nMicrosoft.Graph.Identity.Governance\n\n# Azure modules (only if Azure PIM reporting is enabled in AuthContext)\nAz.Accounts\nAz.Resources\n```\n\n**Note:** The module handles loading and unloading as needed. If a required module is missing, you will be prompted to install it, or the report will skip that phase.\n\n### Required Permissions\n\nMinimum permissions needed vary by report:\n\n#### Authentication Context Inventory Report\n**Microsoft Graph API:**\n- `Directory.Read.All`\n- `Group.Read.All`\n- `Policy.Read.All`\n- `Policy.Read.ConditionalAccess`\n- `AuthenticationContext.Read.All`\n- `RoleManagement.Read.Directory`\n- `PrivilegedAccess.Read.AzureADGroup`\n- `InformationProtectionPolicy.Read.All`\n\n**Service-Specific Roles:**\n- **Exchange Online**: View-Only Organization Management\n- **SharePoint Online**: SharePoint Administrator or Global Reader\n- **Azure**: Reader role on subscriptions (for Azure PIM enumeration)\n\n#### Access Package Documentor Report\n**Microsoft Graph API:**\n- `EntitlementManagement.Read.All`\n- `Directory.Read.All` (for resolving directory objects)\n\n## 📦 Installation\n\n### Option 1: From PowerShell Gallery (Recommended)\n\n```powershell\n# Install from PSGallery\nInstall-Module -Name M365IdentityPosture -Scope CurrentUser\n\n# Or install for all users (requires admin)\nInstall-Module -Name M365IdentityPosture -Scope AllUsers\n```\n\n### Option 2: Manual Installation\n\n1. **Clone or download this repository**\n\n```powershell\ngit clone https://github.com/Noble-Effeciency13/M365IdentityPosture.git\n```\n\n2. **Copy to PowerShell modules directory**\n\n```powershell\n# Check available module paths\n$env:PSModulePath -split ';'\n\n# Copy to user module path (recommended)\n$modulePath = \"$HOME\\Documents\\PowerShell\\Modules\\M365IdentityPosture\"\nCopy-Item -Path \".\\M365IdentityPosture\\*\" -Destination $modulePath -Recurse -Force\n```\n\n3. **Import the module**\n\n```powershell\nImport-Module M365IdentityPosture\n```\n\n## 📊 Reports\n\n### 🔐 Authentication Context Inventory\n\n**Purpose**: Comprehensive discovery and analysis of authentication context enforcement across Microsoft 365 services, providing visibility into where and how authentication requirements are applied throughout your tenant.\n\n**When to Use**:\n- Security posture assessments and Zero Trust maturity evaluation\n- Compliance audits requiring authentication requirements documentation\n- Gap analysis of authentication context enforcement\n- Pre/post implementation validation of authentication policies\n\n**Quick Start**:\n\n```powershell\n# Import the module\nImport-Module M365IdentityPosture\n\n# Basic usage - discovers all authentication contexts across services\nInvoke-AuthContextInventoryReport\n\n# Exclude Azure PIM enumeration for faster execution\nInvoke-AuthContextInventoryReport -ExcludeAzure\n\n# Custom output path with quiet mode\nInvoke-AuthContextInventoryReport `\n    -TenantName \"contoso\" `\n    -OutputPath \"C:\\Reports\\AuthContext\" `\n    -Quiet `\n    -NoAutoOpen\n```\n\n**Key Capabilities**:\n- **Purview Sensitivity Labels**: Discovers labels with embedded authentication context requirements and tracks label inheritance\n- **Conditional Access Policies**: Maps policies referencing authentication contexts with target users, groups, and applications\n- **Privileged Identity Management (PIM)**: Analyzes directory role policies, group-based PIM, and Azure resource PIM policies (optional)\n- **SharePoint Online**: Identifies direct authentication context assignments and inherited contexts through labels\n- **Microsoft 365 Groups \u0026 Teams**: Tracks label inheritance and context enforcement across teams and channels\n- **Protected Actions**: Maps RBAC resource actions requiring authentication contexts\n- **Cross-Service Correlation**: Identifies relationships and dependencies between services\n- **Gap Identification**: Highlights unused or misconfigured authentication contexts\n\n**Parameters**: For complete parameter documentation and advanced examples, run:\n```powershell\nGet-Help Invoke-AuthContextInventoryReport -Full\n```\n\n---\n\n### 📦 Access Package Documentor\n\n**Purpose**: Interactive graph-based visualization and comprehensive documentation of Entitlement Management configurations, providing clear visibility into access package structures, policies, workflows, and resource assignments.\n\n**When to Use**:\n- Access review preparation and delegation audits\n- Onboarding/offboarding process documentation\n- Entitlement management optimization and cleanup\n- Compliance reporting for access governance\n\n**Quick Start**:\n\n```powershell\n# Import the module\nImport-Module M365IdentityPosture\n\n# Basic usage - documents all access packages and catalogs\nInvoke-AccessPackageDocumentor -OutputPath \"C:\\Reports\\AccessPackages\"\n\n# Use dark theme\nInvoke-AccessPackageDocumentor `\n    -OutputPath \"C:\\Reports\" `\n    -Theme Dark\n\n# Quiet mode without auto-opening the report\nInvoke-AccessPackageDocumentor `\n    -OutputPath \"C:\\Reports\" `\n    -Quiet `\n    -NoAutoOpen\n```\n\n**Key Capabilities**:\n- **Access Package Structure**: Complete inventory of access packages, catalogs, and assignment policies\n- **Resource Assignments**: Maps resource role scopes including groups applications, SharePoint sites, and Teams\n- **Approval Workflows**: Documents multi-stage approval processes with approvers and escalation settings\n- **Policy Configurations**: Captures expiration settings, access reviews, requestor questions, and custom extensions\n- **Verified ID Integration**: Shows Verified ID requirements in policies when configured\n- **Interactive Cytoscape.js Graph**: \n  - Zoom, pan, and drag-to-explore visualizations\n  - Filter by catalog, access package, policy, or resource type\n  - Full-text search across all node labels\n  - Click nodes to view detailed information in side panel\n  - Layout optimization for different graph sizes\n- **Multi-Format Export**:\n  - **PNG/JPEG**: High-resolution graph screenshots\n  - **Markdown**: Hierarchical documentation with all details\n  - **JSON**: Structured data for external processing or integration\n\n**Parameters**: For complete parameter documentation and advanced examples, run:\n```powershell\nGet-Help Invoke-AccessPackageDocumentor -Full\n```\n\n*This report was co-developed with [Christian Frohn](https://github.com/ChrFrohn).*\n\n---\n\n## ✨ Common Features\n\nAll reports in the M365IdentityPosture module share these capabilities:\n\n### Runtime Theme Switching\nBoth reports generate HTML with two built-in themes:\n- **Classic (Light)**: Default professional appearance with high contrast\n- **Dark**: Reduced eye strain for extended viewing sessions\n\nReports include a theme toggle button for instant switching without regenerating the report.\n\n### Dynamic Module Loading\nThe module automatically loads required PowerShell modules on-demand for each phase and unloads them afterward to free memory. No need to pre-import dependencies.\n\n### Comprehensive Logging\nDetailed execution logs are automatically generated in your temp directory with timestamps:\n- **Windows**: `%TEMP%\\M365IdentityPosture_YYYYMMDD_HHMMSS.log`\n- **Linux/macOS**: `/tmp/M365IdentityPosture_YYYYMMDD_HHMMSS.log`\n\n### Read-Only Operations\nAll reports perform read-only operations with no tenant modifications, making them safe to run in production environments.\n\n### Progress Reporting\nVisual progress indicators and status messages keep you informed during long-running operations across multiple services.\n\n## 💡 Use Cases\n\nThe M365IdentityPosture module addresses key identity and access management scenarios:\n\n- **Security Posture Assessment**: Quarterly evaluations and Zero Trust maturity benchmarking\n- **Compliance Auditing**: Authentication requirements documentation and regulatory validation\n- **Access Governance**: Access review preparation and entitlement management optimization\n- **Identity Lifecycle Management**: Onboarding/offboarding process documentation and validation\n- **Gap Analysis**: Identify security gaps, misconfigurations, and unused resources\n- **Migration Planning**: Zero Trust readiness assessment and authentication modernization\n- **Audit Evidence**: Generate compliance documentation and security control effectiveness reports\n\nBoth reports complement each other: use **Authentication Context Inventory** for security policy enforcement analysis, and **Access Package Documentor** for access governance and delegation workflows.\n\n## 🏗️ Module Architecture\n\n    M365IdentityPosture/\n    ├── M365IdentityPosture.psd1       # Module manifest\n    ├── M365IdentityPosture.psm1       # Root module with banner\n    ├── Public/                         # Exported functions\n    │   ├── Invoke-AuthContextInventoryReport.ps1\n    │   └── Invoke-AccessPackageDocumentor.ps1\n    ├── Private/                        # Internal functions (organized by domain)\n    │   ├── AuthContext/               # Authentication context specific\n    │   ├── Authentication/            # Service connections\n    │   ├── DataCollection/            # Cross-service data retrieval\n    │   ├── DataProcessing/            # Data transformation\n    │   ├── Orchestration/             # Workflow coordination\n    │   ├── ReportGeneration/          # HTML/Export generation\n    │   └── Utilities/                 # Shared helpers\n    └── Tests/                         # Pester tests and validation\n\n\n## 🔍 Troubleshooting\n\n### Common Issues and Solutions\n\n#### PowerShell Version Issues\n  - Privileged role usage patterns\n  - Role activation history\n  - Standing vs eligible assignments\n  - Separation of duties analysis\n  - Role mining recommendations\n\n### Policy Analytics\n- **Conditional Access Gap Analysis**\n  - Uncovered users and applications\n  - Policy overlap and conflicts\n  - MFA and device compliance gaps\n  - Sign-in risk coverage\n  - Location-based access patterns\n\n### Identity Protection\n- **Identity Security Dashboard**\n  - Security defaults assessment\n  - Identity Protection policy effectiveness\n  - Risky user and sign-in analytics\n  - Password health metrics\n  - Authentication method analysis\n\n### Future Considerations\n- Hybrid identity synchronization health\n- Cross-cloud security posture (AWS/GCP integration)\n- Automated remediation recommendations\n- Integration with Microsoft Secure Score\n- Custom compliance framework mapping\n- Maester integration\n\n## 🔍 Troubleshooting\n\n### Common Issues and Solutions\n\n#### PowerShell Version Issues\n\n```powershell\n# Check your PowerShell version\n$PSVersionTable.PSVersion\n\n# If version \u003c 7.0, install PowerShell 7+\n# Windows\nwinget install Microsoft.PowerShell\n\n# macOS\nbrew install --cask powershell\n\n# Linux\n# See: https://docs.microsoft.com/powershell/scripting/install/installing-powershell-on-linux\n```\n\n#### Module Import Failures\n\n```powershell\n# Verify module is in correct path\nGet-Module -ListAvailable M365IdentityPosture\n\n# Check for missing dependencies\nTest-ModuleManifest -Path \".\\M365IdentityPosture\\M365IdentityPosture.psd1\"\n\n# Force reload if cached\nRemove-Module M365IdentityPosture -Force -ErrorAction SilentlyContinue\nImport-Module M365IdentityPosture -Force\n```\n\n#### Authentication Issues\n\n```powershell\n# Clear existing Graph context\nDisconnect-MgGraph\n\n# Re-authenticate with required scopes\nConnect-MgGraph -Scopes @(\n    \"Directory.Read.All\",\n    \"Policy.Read.All\",\n    \"Group.Read.All\",\n    \"Policy.Read.ConditionalAccess\",\n    \"AuthenticationContext.Read.All\",\n    \"RoleManagement.Read.Directory\",\n    \"PrivilegedAccess.Read.AzureADGroup\",\n    \"InformationProtectionPolicy.Read.All\"\n)\n\n# Verify connected account\nGet-MgContext\n```\n\n### Logging and Debugging\n\nDetailed logs are automatically generated:\n\n```powershell\n# Default log location\n# Windows: %TEMP%\\M365IdentityPosture_YYYYMMDD_HHMMSS.log\n# Linux/macOS: /tmp/M365IdentityPosture_YYYYMMDD_HHMMSS.log\n\n# View current session log\nGet-Content \"$env:TEMP\\M365IdentityPosture_*.log\" | Select-Object -Last 100\n\n# Enable verbose output for debugging\nInvoke-AuthContextInventoryReport -TenantName \"contoso\" -Verbose\n\n# Enable debug output for maximum detail\n$DebugPreference = 'Continue'\nInvoke-AuthContextInventoryReport -TenantName \"contoso\"\n```\n\n## 🚀 Roadmap \u0026 Future Reports\n\nThe M365IdentityPosture module continues to expand with additional identity and access management reports:\n\n### Planned Reports\n\n- **Role Assignment Auditing**\n  - Privileged role usage patterns and activation history\n  - Standing vs eligible assignments analysis\n  - Separation of duties validation\n  - Role mining and optimization recommendations\n\n- **Conditional Access Gap Analysis**\n  - Uncovered users and applications identification\n  - Policy overlap and conflict detection\n  - MFA and device compliance gap analysis\n  - Sign-in risk coverage evaluation\n  - Location-based access pattern analysis\n\n- **Identity Protection Dashboard**\n  - Security defaults effectiveness assessment\n  - Identity Protection policy analysis\n  - Risky user and sign-in analytics\n  - Password health metrics\n  - Authentication method distribution\n\n### Future Considerations\n\n- Hybrid identity synchronization health monitoring\n- Cross-cloud security posture (AWS/GCP integration)\n- Automated remediation recommendations\n- Microsoft Secure Score integration\n- Custom compliance framework mapping\n- Maester test framework integration\n\n**Timeline**: Development priorities are determined by community feedback and organizational needs. Contributions are welcome! See the [Contributing](#-contributing) section for guidelines.\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these guidelines:\n\n### Contributing New Reports\n\nWhen adding a new security or identity report:\n\n1. **Follow the established pattern**: \n   - Public function: `Invoke-\u003cReportName```Report`\n   - Private orchestration in appropriate folders\n   - Consistent parameter naming\n\n2. **Maintain module philosophy**:\n   - Read-only operations only\n   - Comprehensive error handling\n   - Progress reporting for long operations\n   - HTML output with metrics dashboard\n\n3. **Documentation requirements**:\n   - Complete comment-based help\n   - README section for new report\n   - Sample output screenshots\n   - Required permissions documentation\n\n### Development Process\n\n1. **Fork the repository**\n2. **Create a feature branch** (`git checkout -b feature/AmazingFeature`)\n3. **Commit your changes** (`git commit -m 'Add some AmazingFeature'`)\n4. **Push to the branch** (`git push origin feature/AmazingFeature`)\n5. **Open a Pull Request**\n\n### Development Guidelines\n\n- Follow PowerShell best practices and style guidelines\n- Add Pester tests for new functions\n- Update documentation for new features\n- Ensure backward compatibility\n- Test with PowerShell 7+ on multiple platforms\n- Use tab characters for indentation (not spaces)\n- Include comprehensive comment-based help\n\n## 🌟 Community\n\n- **⭐ Star this repo** if you find it useful\n- **👀 Watch** for updates on new reports\n- **🍴 Fork** to customize for your organization\n- **💬 Share** your use cases and success stories\n- **🐛 Report issues** to help improve the module\n- **💡 Suggest features** for future development\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👤 Author \u0026 🤝 Contributors\n\n**Sebastian Flæng Markdanner** - *Module Author*\n- 🌐 Website: [https://chanceofsecurity.com](https://chanceofsecurity.com)\n- 🐙 GitHub: [@Noble-Effeciency13](https://github.com/Noble-Effeciency13)\n- 💼 LinkedIn: [Sebastian Markdanner](https://www.linkedin.com/in/sebastian-markdanner/)\n\n### Contributors\n\n**Christian Frohn** - *Access Package Documentor Co-Author*\n- Collaborative development of the Access Package Documentor feature\n- 🌐 Website: [https://www.christianfrohn.dk/](https://www.christianfrohn.dk/)\n- 🐙 GitHub: [@ChrFrohn](https://github.com/ChrFrohn)\n- 💼 LinkedIn: [Christian Frohn](https://www.linkedin.com/in/frohn/)\n\n## 🙏 Acknowledgments\n\n- Microsoft Graph PowerShell SDK team\n- Exchange Online Management module team\n- SharePoint PnP Community\n- Azure PowerShell team\n- The PowerShell community\n- All contributors and users providing feedback\n\n## 📚 Resources\n\n- [Microsoft Graph API Documentation](https://docs.microsoft.com/graph/)\n- [Authentication Context Overview](https://docs.microsoft.com/azure/active-directory/conditional-access/concept-authentication-context)\n- [Conditional Access Documentation](https://docs.microsoft.com/azure/active-directory/conditional-access/)\n- [PIM Documentation](https://docs.microsoft.com/azure/active-directory/privileged-identity-management/)\n- [Sensitivity Labels Documentation](https://docs.microsoft.com/microsoft-365/compliance/sensitivity-labels)\n- [Zero Trust Guidance](https://www.microsoft.com/security/business/zero-trust)\n\n## 🔄 Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes, updates, and version information.\n\n### Latest Version: 1.1.0 (2026-03-12)\n- **New Feature**: Access Package Documentor with interactive graph visualization\n- Interactive Cytoscape.js graph for access package relationships\n- Comprehensive export capabilities (PNG, Markdown, JSON)\n- Enhanced HTML reports with light/dark theme toggle\n- Developed in collaboration with Christian Frohn\n- See [full changelog](CHANGELOG.md#110---2026-03-12) for complete details\n\n---\n\n## 📮 Support\n\nFor bugs, feature requests, or questions:\n- 🐛 Open an [issue](https://github.com/Noble-Effeciency13/M365IdentityPosture/issues)\n- 💬 Check [discussions](https://github.com/Noble-Effeciency13/M365IdentityPosture/discussions) for Q\u0026A\n- 🌐 Follow updates on [Chance of Security](https://chanceofsecurity.com)\n\n---\n\n**⚠️ Important Note**: This module performs read-only operations and does not modify any configurations in your tenant. Always review the generated reports and verify findings in your environment. Use the insights provided to enhance your security posture through informed decision-making.\n\n**🔒 Security**: For security concerns or vulnerability reports, please email security@chanceofsecurity.com rather than using public issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNoble-Effeciency13%2FM365IdentityPosture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNoble-Effeciency13%2FM365IdentityPosture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNoble-Effeciency13%2FM365IdentityPosture/lists"}