Evidence: Resolved, not registered
A platform meeting the agent for the first time admits it by resolving the authority.
What lets an authorisation server trust an agent it meets for the first time?
- 3Claims on this page
- 10Artefacts behind them
- 7Reads you can run here
The chain the platform walks
Two authorities vouch for one agent. The platform admits through one.
Read: agent to anchor
Verify: pinned key to agent
Published by Raidiam Connect
-
- records.read
- transfer.status
Aldercross Scheme Authority
Pinned for marks only
-
- records.read
- records.annotate
- transfer.initiate
- transfer.status
Tarnbrook Financial Group
Pinned for admission
The client the platform builds
From the Tarnbrook chain.
authorization_details_types- records.readrecords.annotatetransfer.initiatetransfer.status
token_endpoint_auth_method- private_key_jwt
Only the authority's statement carries policy.
The five reads
The agent asserts no types of its own.
The platform reads from the agent through authority_hints in the order the agent lists them, then verifies from the anchor key it holds in configuration back to the agent. It walks both chains and admits through the one it pins for admission.
OpenID Federation (open standard) gives every entity a signed configuration about itself, and gives a superior a signed statement about each entity beneath it. The API platform performs the walk itself, with the resolver every consumer on this estate shares, and the pin is the pair of anchor identifier and key.
Each anchor's statement about its authority carries no policy, so the folded client is the Tarnbrook statement's policy, every parameter of it: the four detail types, the grant types, the backchannel delivery mode, the registration type and private_key_jwt. The value operator sets each of them.
The five reads
Each read is an unauthenticated GET. The chain figure links nine documents; three of them are the first three reads below. The fourth read is linked from the bound figure, and the fifth is linked here.
Who is asking. The agent's own configuration. Look for client_name Records Assistant, two authority_hints with Aldercross first, and five trust marks: four from the Tarnbrook domain and one from the Aldercross scheme.
Who vouches for it. The Tarnbrook authority's statement about the agent. Look for metadata_policy, and the four detail types it sets.
What a second domain says. The Aldercross authority's statement about the same agent. Look for two detail types where the first domain sets four.
What the resource bounds. The transfers resource's own page. Look for Limits, per transaction, GBP 1000.00.
Whether the platform admits. The platform's health answer. Look for admitting true and both anchor pins loaded. Read on 29 September 2026.
What the platform checks before it admits
-
The walk
- Check 1Agent key
- Check 2Admission chain
-
The admitting chain
- Check 3One federation
- Check 4Policy fold
- Check 5Envelope
-
The mark
- Check 6Mark present
- Check 7Mark signature
- Check 8Lifecycle
The name each check refuses with
- Check 1
no_chain_to_pinned_anchorThe agent's configuration verifies under the keys its authorities vouch for. If it does not, every chain fails. - Check 2
anchor_not_for_admissionEach hop verifies up to the anchor pinned for admission. A failed hop drops its own chain; the Aldercross chain still closes, so the platform answers with this name. - Check 3
authority_multiple_membershipsThe authority names one anchor, so the policy is one federation's. - Check 4
policy_conflictThe policies on the chain combine without conflict. - Check 5
policy_violationThe agent's own metadata stays inside the folded policy. - Check 6
accreditation_missingThe agent carries a mark the platform requires, tarnbrook.agent.member or tarnbrook.enforcement.point. - Check 7
accreditation_unverifiedThe mark verifies under its issuer's keys. - Check 8
accreditation_withdrawnThe issuer's status endpoint answers active. If it cannot be read, a mark read active in the last 300 seconds still counts.
The mark is checked on the agent itself.
Mark status, and how long the client is held
Its authority lists it directly, so no superior is involved.
A failed hop drops only its own chain, so the name the platform answers with depends on what survives the walk. The figure shows the checks this agent meets. The resolver can also answer accreditation_issuer_not_accepted, accreditation_unconfirmed when a status endpoint cannot be read and no recent active answer is held, and authority_unreachable when a document cannot be fetched at all.
A consumer holding an accreditation mark asks the issuing authority for its current status and receives a signed answer. The query is a form post of the mark itself. Observed
The platform holds the client it built until the shortest of three windows ends: its resolution cache, the earliest expiry on the chain, and its mark status cache. Then it resolves again.
Three ceilings, from the outside in
Registered
The Tarnbrook authority
- records.read
- records.annotate
- transfer.initiate
- transfer.status
Attested
A copy of ring 1: no attestation
Granted
What the agent requests
- Read records
records.read - Annotate a record
records.annotate - Check a transfer
transfer.status - Initiate a transfer of 1000.00 GBP
transfer.initiateNoor Haddad approves - Initiate a transfer from a held account of 1000.00 GBP
transfer.initiateDara Nolan approves
Every request is tested against all three, from the outside in.
How the three are built and compared
A refusal names the first ceiling a request falls outside. apps/reference-op/src/grants.ts builds the ceilings and apps/reference-op/src/containment.ts compares them. The registered ceiling is the client the chain produced. The attested ceiling is narrowed by an attestation where a copy presents one, which use case 4 teaches; with none, grants.ts copies the registered types into it. The granted ceiling is the types the agent requests. For a task that moves value, a person approves it: the approval form offers the amount the agent asked for, and the person sets the value the token carries.
The bound the resource publishes
What the resource permits, per transaction
1000.00 GBP
Published on the resource's own page.
A request above that bound
5000.00 GBP
Sent under a grant of 1000.00 GBP.
GBP 5,000.00 exceeds the granted ceiling of GBP 1,000.00. Nothing moved.
The resource's own words and money format. Not read from a call.
Deployment evidence
What this page proves
Each claim, its label and the artefacts behind it.
Role rows as the source of published policy
ObservedMetadata policy on the subordinate statement is projected from role rows on the governed record.
The rest of the statement
The rows set on the role appear as the policy operators in the authority's statement about the entity.
- Lifecycle stage
- Govern
- Lives in
- Raidiam Connect
- Checked by
- Test verification:3b
- Artefacts cited
- 2
-
authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch
Read on the wire 2026-09-09. the statement about the hosted scratch agent carries subset_of, one_of and value operators from the role rows
-
docs/verification/tenant-showcase-2026-09.md#row-3b
Read on the wire 2026-09-09. a row's value shape must match the parameter's shape; one_of and subset_of leave an absent parameter absent
Every read below is an unauthenticated GET that the capability matrix declares for this page. The command shown is the whole request, and it carries an accept header only.
https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753
the statement about the hosted scratch agent carries subset_of, one_of and value operators from the role rows Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753"
One organisation under two authorities
ObservedThe same identity is admitted in two trust domains by two chains that end at two anchors, separated by entity identifier and governance record.
The rest of the statement
One hosted entity configuration names both authorities and carries a mark from each domain.
- Lifecycle stage
- Discover
- Lives in
- Raidiam Connect
- Checked by
- Test verification:5
- Artefacts cited
- 7
-
Read on the wire 2026-09-09. two authority hints on one hosted configuration
-
Read on the wire 2026-09-12. the hero agent: two authority hints, five marks, one from each domain
-
authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/fetch
Read on the wire 2026-09-12. Tarnbrook answers four detail types for this subject
-
authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2/fetch
Read on the wire 2026-09-12. Aldercross answers two, for the same subject
-
Read on the wire 2026-09-09. the first anchor
-
Read on the wire 2026-09-09. the second anchor
-
docs/verification/tenant-showcase-2026-09.md#row-5
Read on the wire 2026-09-09. resolve from the second anchor answered a four hop chain
Every read below is an unauthenticated GET that the capability matrix declares for this page. The command shown is the whole request, and it carries an accept header only.
https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation
two authority hints on one hosted configuration Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation"
https://rp.directory.showcase.raidiam.io/openid_relying_party/70219aeb-bcde-4df8-89e8-a1cc072e32ed/.well-known/openid-federation
the hero agent: two authority hints, five marks, one from each domain Read on the wire 2026-09-12.
Fetch it yourself
$ curl -s "https://rp.directory.showcase.raidiam.io/openid_relying_party/70219aeb-bcde-4df8-89e8-a1cc072e32ed/.well-known/openid-federation"
https://authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/70219aeb-bcde-4df8-89e8-a1cc072e32ed
Tarnbrook answers four detail types for this subject Read on the wire 2026-09-12.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/70219aeb-bcde-4df8-89e8-a1cc072e32ed"
https://authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/70219aeb-bcde-4df8-89e8-a1cc072e32ed
Aldercross answers two, for the same subject Read on the wire 2026-09-12.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/70219aeb-bcde-4df8-89e8-a1cc072e32ed"
https://federation.directory.showcase.raidiam.io/federation_entity/ec54688a-3e67-414d-84e6-9372e736e4c2/.well-known/openid-federation
the first anchor Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://federation.directory.showcase.raidiam.io/federation_entity/ec54688a-3e67-414d-84e6-9372e736e4c2/.well-known/openid-federation"
https://federation.directory.showcase.raidiam.io/federation_entity/2a0d5e07-22de-4367-87bb-3025b63754d4/.well-known/openid-federation
the second anchor Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://federation.directory.showcase.raidiam.io/federation_entity/2a0d5e07-22de-4367-87bb-3025b63754d4/.well-known/openid-federation"
Trust mark status from the issuing authority
ObservedA consumer holding an accreditation mark asks the issuing authority for its current status and receives a signed answer.
The rest of the statement
The status query is a form post of the mark itself; a query by subject and type is refused.
- Lifecycle stage
- Discover
- Lives in
- Raidiam Connect
- Checked by
- Test verification:6
- Artefacts cited
- 2
-
Read on the wire 2026-09-09. the configuration carries the live mark a consumer posts to the status endpoint
-
docs/verification/tenant-showcase-2026-09.md#row-6
Read on the wire 2026-09-09. a signed status response for a live mark; the answer for a withdrawn mark is the row withdraw.accreditation-status-follows
Every read below is an unauthenticated GET that the capability matrix declares for this page. The command shown is the whole request, and it carries an accept header only.
https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation
the configuration carries the live mark a consumer posts to the status endpoint Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation"
The working
What the figures above leave to words.
What it means for the business
If every platform needs its own client record for every agent, each new agent is another relationship somebody maintains, on every platform it will reach. Here the platform holds no record at all. It reads what the authority signed, and the figures above draw each step of that read.
The platform on this route is a reference platform Raidiam wrote. It stands in for the authorisation servers you already run. What a platform of yours needs to do the same is set out on what a platform needs.
Ten terms
- anchor
- The root entity of a trust domain whose key a consumer pins from configuration.
- authority
- A Connect entity that publishes signed subordinate statements, marks and policy about the entities it governs.
- trust domain
- The set of entities that chain to one anchor.
- entity configuration
- The self signed statement an entity publishes at its own identifier.
- subordinate statement
- The statement a superior signs about a subordinate: keys, policy, marks.
- trust mark
- The signed projection of an active accreditation, with a status endpoint.
- envelope
- The set of authorization detail types and grant types an authority permits an agent to request. The registered ceiling.
- resolve
- Walk the chain from a leaf to a pinned anchor and fold the policy.
- pin
- The anchor key a consumer holds in configuration, written at deploy time, as the pair of anchor identifier and key.
- recognition
- The governed act by which an authority becomes a superior of an entity that already publishes its own configuration, minting nothing.
Check it against the running estate
Every surface this use case touches, and the host that answers for it.
Which of your platforms would resolve first, and what would it pin?
Ninety minutes, on the shape of your estate: which systems resolve first, which anchor each pins, and which key each party holds.
Book a working sessionExplore further