ECL AuthZEN Binding Profile 1
Requirement-IDs: compiled Version: 1.0 Status: normative profile of ECL-1 Version 1.0
This profile specifies a policy-engine contribution to an ECL decision. The
guide docs/authzen-binding.md explains it and gives the exact capability table.
A native capability belongs to ECL's own path; its disposition assigns that
responsibility and does not assert that a deployment implements every operation.
An AuthZEN evaluation is a decision input and has no release boundary in the
sense of ECL1N-0185: it releases no action, and an action is released, if at
all, by an enforcement point on an ECL admit (AZB1-001).
AZB1-001§ — An AuthZEN permit MUST NOT create, widen, extend or revive ECL authority, and the decision point MUST still apply its native grant, scope, generation, halt, validity and use checks.
AZB1-002§ — A decision other than an unqualified JSON boolean true MUST NOT contribute to admit; a permit qualified by a non-empty context MUST be denied rather than flattened into an unqualified permit.
AZB1-003§ — A valid false decision MUST deny with
ecl.reason.authzen-denied.v1; qualified permits MUST deny with
ecl.error.binding-unsupported.v1; malformed, missing, non-boolean, unknown-member,
wrong-media-type or oversized responses MUST deny with
ecl.error.dependency-response-invalid.v1; redirects, non-success statuses,
truncated bodies, transport or TLS failures and total-deadline timeouts MUST deny
with ecl.error.dependency-unavailable.v1.
AZB1-004§ — The request mapping MUST be injective over ECL identifiers, MUST NOT send raw identifiers whose character set the bound engines reject, and MUST reject any DCMP-2 message type other than decision_request rather than approximate it.
AZB1-005§ — The client MUST NOT follow redirects, retry within a decision attempt or discover endpoints, and MUST authenticate the server with TLS under a caller-configured trust anchor unless plain HTTP is explicitly enabled for loopback testing.
AZB1-006§ — A deployment MUST publish the binding's exact capability table with each capability supported, native or unsupported, in which outcome-hold, outcome-challenge, obligations, validity-window, use-policy, safe-state, control-cancel, control-revoke, control-supersede, control-quarantine and control-halt MUST be native responsibilities of ECL.
AZB1-007§ — A policy-service change MUST affect only subsequent evaluations; outstanding authorizations MUST remain bounded by their validity windows, and immediate effect MUST use ECL's own control path without a policy-service bypass.
AZB1-008§ — Deviations from the bound protocol's requirements MUST be declared in binding documentation, including this binding's strict-JSON acceptance beyond the I-JSON recommendation and denial of unknown response members.
An empty context does not qualify the boolean decision. A valid false is a policy denial, not a transport failure. The additional check supplies no authority, validity window, use policy or obligation. The table's native responsibilities preserve cancel, revoke, supersede, quarantine, halt, hold and challenge as ECL semantics; this binding supports neither batch evaluation nor endpoint discovery. Outstanding authority staleness is bounded by its existing window, not by polling the policy engine.
Evidence
| Kind | What the citation establishes |
|---|---|
| Vectors | ECL object semantics separately from external engine behavior |
| Deployment tests | The decision point's client and its handling of the policy engine's responses |
Vectors check ECL objects, not an exchange with a policy engine. A claim of this profile shows the client's behavior with tests of its own deployment: the strict acceptance of AZB1-002 and AZB1-003, an injective mapping that refuses what it cannot map (AZB1-004), the transport rules of AZB1-005, and the boundary of AZB1-001, under which a permit never replaces a native check such as revocation. The guide gives the exact capability table and the declared deviations (AZB1-006, AZB1-008). These tests do not establish assessor independence or a production deployment claim.