authzen
Skill1 starsChanged 31 days agoMITView on GitHub
AuthZEN Authorization API: PEP-to-PDP access evaluation and search over HTTPS JSON. Use when building or reviewing a Policy Enforcement Point (PEP) that asks a Policy Decision Point (PDP) for access decisions, or a PDP that implements the API: the subject, resource, action and context information model, decision and decision context, the Access Evaluation endpoint (/access/v1/evaluation), the Access Evaluations batch endpoint with default values and evaluations_semantic (execute_all, deny_on_first_deny, permit_on_first_permit), Subject, Resource and Action Search with pagination (page, next_token), PDP metadata at /.well-known/authzen-configuration and signed_metadata, HTTP error codes, X-Request-ID, PEP authentication, the interop test vectors, and the Basic, Batch, Search and Discovery certification levels. Pins the OpenID AuthZEN Authorization API 1.0 Final.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Follow the workflow below step by step: Every rule here comes from a source in Sources, cited inline as (AuthZEN § section) for the …
- Distinctive: line 24
Sources refresh: before relying on a pin, compare it with the OpenID Foundation specifications index and the latest commit of the AuthZEN …
- Very specific: line 28
Every API call is an HTTPS POST with Content-Type: application/json and a JSON object body.
- Very specific: line 35
Search results contain only entities of the searched type.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AuthZEN Authorization API
The Authorization API lets a Policy Enforcement Point (PEP) ask a Policy Decision Point (PDP) for access decisions without either knowing the other's internals. The PDP serves the API and the PEP calls it (Authorization API § 1). It has evaluation endpoints that return decisions, search endpoints that list permitted subjects, resources or actions, and a metadata document for discovery.
Follow the workflow below step by step. Every rule here comes from a source in Sources, cited inline as (AuthZEN § section) for the specification and (Cert § anchor) for the certification scenario. If a rule is not in a source, it is not in this skill.
Inputs (fill in, or ask before starting)
- Role: PEP (the caller), PDP (the server), or both, for example a gateway that enforces decisions from a hosted PDP.
- Revision: Authorization API 1.0. Later revisions may add to the API but MUST NOT change 1.0 (AuthZEN § 4).
- APIs in scope: Access Evaluation is the core feature. Access Evaluations, the three Search APIs and metadata are optional for a PDP (AuthZEN § 3, § 9.1.1).
- PEP authentication: mutual TLS, OAuth or an API key. The choice is out of scope of the specification (AuthZEN § 11.2).
- Certification target: none, or one or more of Basic, Batch, Search and Discovery, each with Core and Properties sub-levels (Cert § certification-levels).
- Sources refresh: before relying on a pin, compare it with the OpenID Foundation specifications index and the latest commit of the AuthZEN repository. If a revision changed, re-read the source and update
metadata.jsonand Sources.
Invariants
- Every API call is an HTTPS
POSTwithContent-Type: application/jsonand a JSON object body. A successful response is200withContent-Type: application/json(AuthZEN § 10.1, § 10.1.1). - A deny is
200with{ "decision": false }. The error codes400,401,403and500describe the request or its processing and never mean deny (AuthZEN § 10.1.2). decision: falseMUST NOT be permitted to go forward. A PEP MAY rejectdecision: truewhen it does not understand the decisioncontext(AuthZEN § 5.5).- A Subject and a Resource each need string
typeandid, withidscoped totype. An Action needs a stringname.propertiesis an optional object (AuthZEN § 5.1, § 5.2, § 5.3). - An evaluation request needs
subject,actionandresource, andcontextis optional (AuthZEN § 6.1). A PDP returns400 Bad Requestwhen a required attribute is missing (AuthZEN § 10.1.1). - In a batch, the top-level
subject,action,resourceandcontextare defaults that each evaluation may override. Decisions come back in request order. With noevaluationsarray, or an empty one, the request behaves as a single evaluation (AuthZEN § 7.1, § 7.1.1, § 7.2). - Per-item errors in a batch are returned as
decision: falsewith details in that item'scontext. Errors about the whole payload use HTTP status codes (AuthZEN § 7.2.1). - Search results contain only entities of the searched type. When a response is partial it MUST include
pagewithnext_token, and that token is an empty string after the last page (AuthZEN § 8.2.2, § 8.3). - The
policy_decision_pointin metadata MUST equal the identifier used to build the metadata URL, or the metadata MUST NOT be used (AuthZEN § 9.2.3). - The PEP–PDP connection MUST be secured, for example with TLS. The PDP SHOULD authenticate the PEP and answers a failed authentication with
401, which SHOULD carryWWW-Authenticate(AuthZEN § 11.1, § 11.2, § 11.3).
Workflow
- Model the request. Map your principal, target, operation and environment to
subject,resource,actionandcontext. ->references/information-model.md✓ Every subject and resource has a stringtypeandid, and every action has aname. - Call or serve the Access Evaluation API.
->
references/evaluation-apis.md✓ A deny returns200withdecision: false, and a missingsubject,actionorresourcereturns400. - Add the Access Evaluations API when you batch.
->
references/evaluation-apis.md✓ Tests cover default inheritance, per-item override, response order, an empty array, and eachevaluations_semanticvalue. - Add the Search APIs when you list permitted entities.
->
references/search-apis.md✓ The searched entity carries noid(or it is ignored), Action Search omitsaction, and pagination ends with an emptynext_token. - Publish or consume PDP metadata.
->
references/metadata-transport.md✓ The PEP comparespolicy_decision_pointwith the identifier it used, and falls back to the default paths when an endpoint is not published. - Secure the transport. Authenticate the PEP, echo
X-Request-ID, and limit payload size and request rate. ->references/metadata-transport.md✓ An unauthenticated call returns401withWWW-Authenticate, and a request carryingX-Request-IDgets the same value back. - Check conformance. Load the certification fixture and run the interop vectors that match your scope.
->
references/conformance.md✓ The eight fixture decisions hold and the prerequisites for each certification sub-level are met.
Verify before done
- Every request and response body is a JSON object over HTTPS
POST, withapplication/jsonboth ways (AuthZEN § 10.1). - A deny is always
200withdecision: false, never an HTTP error status (AuthZEN § 10.1.2). - Per-item batch errors come back as
decision: falsewith details incontext(AuthZEN § 7.2.1). - The PEP enforces
decision: false, and decides what to do with acontextit does not understand (AuthZEN § 5.5). - Batch requests fill omitted fields from the top-level defaults, and
execute_allis the default semantic (AuthZEN § 7.1.1, § 7.1.2.1). - Mid-pagination requests change only
page.token(AuthZEN § 8.2.1). - Metadata unknown to the PEP is ignored, and supported
signed_metadatais verified and takes precedence over plain values (AuthZEN § 9.1.3, § 9.2.2, § 9.2.3). - Endpoints include
v1in their path (AuthZEN § 4). - JSON follows I-JSON, and
nullproperties are omitted (AuthZEN § 11.5). - The certification scenario and interop vectors in use match the commit pinned in Sources.
Reference index
| File | Covers |
references/information-model.md | Subject, Resource, Action, Context, Decision and decision context, with JSON examples |
references/evaluation-apis.md | Access Evaluation and Access Evaluations, defaults, evaluations_semantic, per-item errors, PEP and PDP sketches |
references/search-apis.md | Subject, Resource and Action Search, search semantics, pagination, the response shape |
references/metadata-transport.md | PDP metadata and discovery, signed_metadata, the HTTPS JSON binding, default paths, errors, X-Request-ID, security considerations |
references/conformance.md | Certification levels, the required fixture, search fixture, transport and discovery requirements, interop vectors |
Related skills
openid: the umbrella skill that routes between the OpenID Foundation specifications.npx skills add ScaleDockHQ/scaledock-skills --skill openidoauth: OAuth-based authentication of the PEP to the PDP.npx skills add ScaleDockHQ/scaledock-skills --skill oauthjwt: JWS and JWT processing forsigned_metadata.npx skills add ScaleDockHQ/scaledock-skills --skill jwt
Sources
Status uses the publishing body's own maturity term. Checked is the date the source was last read.
- Authorization API 1.0: Final, 1.0 (published 11 January 2026), checked 2026-10-02.
- AuthZEN Authorization API 1.0 Certification Scenario: Working group draft, commit b304f68 (1 October 2026), checked 2026-10-02. Draft posture: build when targeting certification, otherwise track, pinned to commit b304f68.
- AuthZEN interop scenarios and test vectors: Working group repository, non-normative, commit b304f68 (1 October 2026), checked 2026-10-02.
In this repository40 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- find-skillsSkill
- a2aSkill
- ag-uiSkill
- ap2Skill
- asyncapiSkill
- cedarSkill
- cloudeventsSkill
- eu-ai-actSkill
- fapiSkill
- gnapSkill
- jwtSkill
- mcp-authorizationSkill
- oauthSkill
- ocsfSkill
- openapi-arazzoSkill
- openapi-overlaySkill
- openapiSkill
- openfeatureSkill
- openid4vcSkill
- openid-connectSkill
- openid-federationSkill
- openidSkill
- opentelemetry-genaiSkill
- owasp-agenticSkill
- problem-detailsSkill
- ratelimit-headersSkill
- scaledock-agent-permissionsSkill
- scaledock-enterprise-identitySkill
- scaledock-http-apiSkill
- scaledock-mcp-serverSkill
- scaledock-repo-standardSkill
- scimSkill
- shared-signalsSkill
- spiffeSkill
- standard-schemaSkill
- typespecSkill
- web-bot-authSkill
- webmcpSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

