openid profile email
client_registration_types: ["automatic"]
client_registration_types: ["explicit"]
Source: github.com/Dahkenangnon/fed-oidfed-com/blob/main/src/topologies/single-anchor.ts
rp1.single.fed.oidfed.com — automatic client registrationrp2.single.fed.oidfed.com — explicit client registrationexplore.oidfed.com — the same federation, visualised# Inspect any participant straight from the terminal — no install needed: $ npx -y -p @oidfed/cli oidfed entity https://op.single.fed.oidfed.com
Embedded trust_chain did not fit the query carrier in our deployment — sharing what we saw.
Unknown constraint parameters are silently ignored — a gap compared to the metadata side.
Decisions whose inputs change between requests — sharing a need we ran into.
Observation
trust_chain in the Request Object's JWS header pushes the ?request=<JWT> query carrier past common HTTP-intermediary defaults.Description
proxy_buffer_size of 8 KB. The 502 fired on the smallest real federation, not on a deep edge case.request_uri, or a Pushed Authorization Request [RFC 9126] for the request." In our deployment, that note turned out to describe the default path, not an edge case.Suggestion
trust_chain is embedded, and pointing readers to form_post, request_uri, or PAR — would save the next implementer the same 502.Example
// Failing path GET /authorize?request=<9KB JWT with trust_chain> → HTTP/1.1 502 Bad Gateway (nginx proxy_buffer_size) // Working path (form_post default in @oidfed/oidc@0.4.0) POST /authorize Content-Type: application/x-www-form-urlencoded request=<same JWT>
Observation
Description
metadata_policy_crit (§6.1.3.2) — a federation can mark a custom operator as required-to-understand, with chain invalidity as the failure mode.Suggestion
constraints_crit claim that mirrors metadata_policy_crit semantics would close this gap. One new claim, no change to existing ones.Example
// Subordinate Statement
{
"iss": "https://ta.regulated-fed.example",
"sub": "https://intermediate.bank.example",
"constraints": {
"max_path_length": 2,
"required_trust_marks_in_chain": ["https://.../audit-2026"]
},
"constraints_crit": ["required_trust_marks_in_chain"]
}
Observation
Description
metadata_policy. Federations that need it today have to build it outside the chain, and lose the federation's signature on the result.Direction
federation_policy_evaluation_endpoint that sits next to the static §6 layer — it never replaces it. The endpoint returns a signed decision with iat/exp, so cached decisions stay deterministic inside the window.Question
TA declares the endpoint
"metadata": {
"federation_entity": {
"federation_policy_evaluation_endpoint":
"https://policy.ai-fed.example/evaluate",
"federation_policy_evaluation_fallback": "use_cached"
}
}
Signed decision
// policy-decision+jwt — narrows a static budget federation-wide
{ "iss": "https://policy.ai-fed.example",
"sub": "https://advisor-platform.example",
"iat": 1779373800, "exp": 1779373860,
"decision": "modified",
"effective_metadata": { "default_delegation_budget": 50 } }
Open to any suggestion, question, or further involvement — on the spec, on the implementation, or on the demo.