Skip to main content

oneport-debug-iam

Enterprise IAM-aware authorization debugger. When a user or service gets a 403/401, this traces the failure through your identity provider (Okta, Active Directory, Azure AD) and re-evaluates the application's RBAC policy locally — then tells you the exact missing group, scope, or blocking rule, and how to fix it.

Claude Code and Copilot run with your local privileges and have zero concept of corporate RBAC. This tool understands the permission matrix.

Try it in 60 seconds (no Okta, no API key)

pip install oneport-debug-iam
oneport-iam demo

The demo runs the real RBAC engine on a bundled 403: an engineer is denied POST /api/v1/payments/charge. You'll see their Okta groups/scopes, the authorization decision, the exact missing group and scope, the policy rule that governs the endpoint, and a root-cause analysis.

✖ DENY
Missing group(s):  payments-admin
Missing scope(s):  payments:write

Add --format json for machine-readable output (Jira/SIEM/access-review pipelines).

Use it on your own identities

export OKTA_ORG_URL=https://corp.okta.com
export OKTA_API_TOKEN=…

oneport-iam trace \
  --user jsmith@corp.com \
  --app payment-service \
  --action POST \
  --resource /api/v1/payments/charge \
  --policy rbac.yaml

Other commands:

# Who can do this? (blast-radius / access review)
oneport-iam who-can --resource /api/v1/admin/users --action DELETE --policy rbac.yaml

# Decode a token and evaluate what it's actually authorized to do
oneport-iam inspect-token --token eyJhbGci... --policy rbac.yaml --resource /api/v1/payments/charge --action POST

RBAC policy format

rules:
  - id: allow-charge
    effect: allow                       # allow | deny (deny wins)
    groups: [payments-admin]            # OR within the list
    scopes: [payments:write]            # OAuth scopes (OR); also accepts scope: entries in groups
    resources: ["/api/v1/payments/*"]   # glob
    actions: [POST]

Environment variables

Provider Variables
Okta OKTA_ORG_URL, OKTA_API_TOKEN
Active Directory AD_SERVER, AD_BASE_DN, AD_BIND_USER, AD_BIND_PASSWORD (needs the ad extra)

A provider that isn't configured is skipped; one that fails is logged but doesn't abort the trace (Okta up + AD down still yields a partial analysis).

Optional dependencies

pip install 'oneport-debug-iam[ad]'      # Active Directory (LDAP) support
pip install 'oneport-debug-iam[azure]'   # Azure AD / Entra ID

The default install is httpx-based (Okta + RBAC) and pulls no LDAP/Azure stack.

Air-gapped / on-prem AI

Set ONEPORT_MODE=local to run the AI analysis against a local model (Ollama / vLLM) — no data leaves your network. See oneport-debug-local.

Notes

  • On Git Bash (Windows), a --resource /api/... argument may get path-mangled by MSYS. Prefix with // or run MSYS_NO_PATHCONV=1 oneport-iam .... PowerShell, cmd, and Linux/macOS shells are unaffected.

License

Apache-2.0

Metadata

Release files for oneport-debug-iam 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for oneport-debug-iam 0.1.0
File Interpreter ABI Platform Actions
oneport_debug_iam-0.1.0-py3-none-any.whl Python 3 none any Details for oneport_debug_iam-0.1.0-py3-none-any.whl

Release files / oneport_debug_iam-0.1.0-py3-none-any.whl

Download URL oneport_debug_iam-0.1.0-py3-none-any.whl
Size 20.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a0597f64162f02d2ea9a663d7cfd54d8efc50b61670ed19eb82fb2b47fc44ca9
BLAKE2b-256 checksum
How to use checksums
c86fb478e1200466b8d540786df9dbc55bed54f0e896d8cbf7d62a79fa3fa7d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Security for oneport-debug-iam 0.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page