General
This tool is built to facilitate Azure/Entra environment discovery.
The philosophy of the tool is same as Jawsome (developped to brute force IAM permissions in AWS)
But due to complexity of Microsoft, this project is more complex to answer multiple problems and contains multiple submodules that works together.
Installation
Pypi
Perform git clone for now... I will release first package on Pypi when the tool will be "really" functional 😉
pipx install jazzure
Then just call : jazzure -h
Local run
git clone https://github.com/pasdoue/Jazzure.git
python jazzure.py -h
Technical details
This tool is under heavy construction and documentation will follow.
Also as there are many things to handle, I decided to split documentation across modules/packages to avoid an unreadable README 🤪
Azure & Entra details
As there are several ways to connect to those environments, here is a "little" summarize :
| Method | Identity | User interaction | Used with |
|---|---|---|---|
| Interactive / Browser | User | Yes | az, PowerShell, Graph |
| Device Code | User | Using web browser first | az, Graph PowerShell, MSAL |
| Authorization Code + PKCE | User | Yes | Web/Desktop/SPA |
| Access Token existant | User or App | No | curl, REST, PowerShell |
| Client Secret | Application | No | curl, MSAL, scripts |
| Certificate | Application | No | PowerShell, MSAL, automation |
| Managed Identity | Azure Resource / Service Principal | No | VM, App Service, Function, etc. |
| Workload Identity / Federated Credential | Workload | No | CI/CD, Kubernetes, GitHub, etc. |
| OBO | User → Application → API | No after first login | APIs intermédiaires |
Jazzure details
Python Microsoft SDK
This way of handling Microsoft features like I did for Jawsome was aborted, but left dead code as a reminder
More details here : Python SDK details
az CLI
As the SDK is not suitable for performing introspection, I turned to azure CLI parsing.
Actually script take between 40min to 1h to parse all azure CLI options to generate JSON to be faster next times.
More details here : Azure CLI details
Powershell handler
As a lot of commands & Entra connections are well handled in PowerShell and not in python SDK or even Azure CLI, it was necessary to support PowerShell ecosystem.
More details over here : PowerShell details
python jazzure.py docker --help
IMDS / Managed Identity
This section is about when you're logged into a VM, so you can interrogate IMDS on http://169.254.169.254/metadata.
More details over here : IMDS details
python jazzure.py imds --help
Metadata
Release files for jazzure 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jazzure-0.1.0.tar.gz | 39.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jazzure-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.8 kB
Release files / jazzure-0.1.0.tar.gz
| Download URL | jazzure-0.1.0.tar.gz |
|---|---|
| Size | 39.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7128f40697951af142d0ff5ebee4cb09c16ada402a7a2c6e06e7e601453cd672
|
|
BLAKE2b-256 checksum How to use checksums |
a5e464e2175edef950723b1a7483efe3974070dc22868819e6f5e32b544035e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.
Transparency logRelease files / jazzure-0.1.0-py3-none-any.whl
| Download URL | jazzure-0.1.0-py3-none-any.whl |
|---|---|
| Size | 44.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
20d0847982da14d8b48be64e2de8f313666a569b9bfe1137af27f34f342744ea
|
|
BLAKE2b-256 checksum How to use checksums |
8705ee0c6eca7efadfbc4e85a7a20a670a37ce0fc4c4de5abe7f1ea2b353f137
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.
Transparency log