Evidence: Across the boundary
They bring claims and evidence. You decide the effective authority.
A partner outside our control runs its own agents under its own root. What do we hold about them, and who can withdraw it?
- 5Claims on this page
- 15Artefacts behind them
- 10Reads you can run here
Known limitation
Not observed on this tenant The authority resolves both chains and answers, and that answer is the one drawn here. On this tenant the API platform and the workforce platform cannot act on it for the Holdings Reader. Larkspur's root is bound to the Aldercross scheme, so each platform asks its own authority whether it recognises that scheme, that question returns a server error, and each platform refuses the Holdings Reader before a tool is reached. What this page draws is the authority's resolve, not a platform admission of either agent.
On this estate
Reference implementationA partner's agent, bounded by your rules
You issued the Holdings Reader nothing. You hold one record about Larkspur: the recognition, and its ceiling.
What your platform checks when a partner's agent arrives
Not your organisation
Larkspur Partners
- Its own rootLarkspur's root
- Its agentHoldings Reader
- What it carries
aldercross.accredited.agent
Larkspur issued this identity and holds its key. Nothing you decide changes that.
Your trust decision
-
Walk the chain to your anchor
DerivedThe chain runs from Holdings Reader through Larkspur's root to the Tarnbrook anchor, which you pin.
DerivedThe chain runs from Holdings Reader through Larkspur's root to the Tarnbrook anchor, which you pin.
DerivedYou withdrew the recognition, so no superior of yours signs a statement about Larkspur's root. The walk stops before your anchor.
-
Read the marks it carries
DeclaredYou recognise the issuing authority through tarnbrook.recognised.scheme, so you read this mark.
DeclaredYou recognise the issuing authority through tarnbrook.recognised.scheme, so you read this mark.
DeclaredNot reached. The walk stopped.
-
Fold your policy on that hop
DerivedOn that hop tarnbrook.external.reader sets authorization_details_types subset_of to records.read, transfer.status.
DerivedOn that hop tarnbrook.external.reader sets authorization_details_types subset_of to records.read.
DerivedNot reached. There is no hop of yours to carry a policy.
-
Compare what you require with what it holds
DerivedThe Tarnbrook API platform requires tarnbrook.external.reader on Larkspur's root, which your recognition carries, and aldercross.accredited.agent on the agent. This agent holds it. The platform then asks its own authority whether it recognises the scheme that issued that accreditation, and on this tenant that question answers a server error, so it refuses before a tool is reached.
DerivedThe Tarnbrook API platform requires tarnbrook.external.reader on Larkspur's root, which your recognition carries, and aldercross.accredited.agent on the agent. This agent holds it. The platform then asks its own authority whether it recognises the scheme that issued that accreditation, and on this tenant that question answers a server error, so it refuses before a tool is reached.
DerivedNot reached.
Your organisation
The Tarnbrook API platform
It asks for 1:
-
records.readread_recordsInside your ceiling
Inside your ceiling
No trust path
Effective authority, as your authority answers it
records.read
records.read
None. Your authority leaves this agent nothing to ask for.
Three bounds, and two of them are yours. You set the ceiling on the hop and the mark you require on their root. The third is the scheme's accreditation, which you read because you recognise the scheme.
Not your organisation
Quillon Software
- Its own rootQuillon's root
- Its agentthe Balance Monitor at Quillon
- What it carriesno role from an authority here
What an agent asserts about itself is an input to your decision, never the decision.
Your trust decision
-
Walk the chain to your anchor
DerivedThe chain runs from the Balance Monitor at Quillon through Quillon's root to the Tarnbrook anchor, which you pin.
DerivedThe chain runs from the Balance Monitor at Quillon through Quillon's root to the Tarnbrook anchor, which you pin.
DerivedYou withdrew the recognition, so no superior of yours signs a statement about Quillon's root. The walk stops before your anchor.
-
Read the marks it carries
DeclaredQuillon's root names no scheme, so this chain carries no accreditation mark.
DeclaredQuillon's root names no scheme, so this chain carries no accreditation mark.
DeclaredNot reached. The walk stopped.
-
Fold your policy on that hop
DerivedOn that hop tarnbrook.external.reader sets authorization_details_types subset_of to records.read, transfer.status.
DerivedOn that hop tarnbrook.external.reader sets authorization_details_types subset_of to records.read.
DerivedNot reached. There is no hop of yours to carry a policy.
-
Compare what you require with what it holds
DerivedThe Tarnbrook API platform requires tarnbrook.external.reader on Quillon's root, which your recognition carries. Quillon's root is bound to no scheme you pin for marks, so nothing further is asked of the agent itself.
DerivedThe Tarnbrook API platform requires tarnbrook.external.reader on Quillon's root, which your recognition carries. Quillon's root is bound to no scheme you pin for marks, so nothing further is asked of the agent itself.
DerivedNot reached.
Your organisation
The Tarnbrook API platform
It asks for 3:
-
records.readread_recordsInside your ceiling
Inside your ceiling
No trust path
-
transfer.statustransfer_statusInside your ceiling
Outside your ceiling
No trust path
-
transfer.initiateinitiate_transferOutside your ceiling
Outside your ceiling
No trust path
Effective authority, as your authority answers it
records.read transfer.status
records.read
None. Your authority leaves this agent nothing to ask for.
Nothing accredits this agent. The ceiling on your hop is the only bound, and it holds.
Your platform walks the chain from the Holdings Reader through Larkspur's root to your own anchor, checks each signature upward, reads the scheme accreditation the agent carries, and folds the ceiling you set on the hop where you recognised Larkspur. It then asks its own authority whether it recognises the Aldercross scheme. On this tenant that question returns a server error, so the platform refuses the Holdings Reader before a tool is reached.
The design requires that each trust domain's anchor is signed by its own key. On this tenant both anchors sign with one federation key, and both authorities sign with one authority key. The two trust domains stay separated by entity identifier and by governance record, and a consumer's pin is the pair of entity identifier and key, so a chain to the wrong anchor is refused on the issuer. Cryptographic separation is absent: the holder of the shared key can mint a statement in either anchor's name, and on this tenant that holder is Raidiam in both cases. Not observed on this tenant
The statement about a recognised root is where a consumer learns which key that root signs with. The keys page carries what this tenant vouches on that statement, on a row of its own. Not observed on this tenant
The two bounds on that path
Two bounds act on that path and each is set independently. The ceiling on the hop says what an agent under Larkspur's root can be granted. The mark the platform requires of the agent says whose agents it answers at all. A request can clear one and fail the other.
When the Tarnbrook platform reaches the Holdings Reader it walks the chain through Larkspur's root to its own anchor, checks each signature upward, folds the policy, reads the leaf's marks, and asks the Aldercross authority for the current status of the scheme's mark. The query is a form post of the mark itself, and the answer is signed by the issuing authority. Use case 6 revokes that accreditation, and the lifecycle page states what the status answer bounds on this tenant. Observed
What this page proves
Each claim, its label and the artefacts behind it.
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"
A signing key per trust domain
Not observed on this tenantThe design requires that each trust domain's anchor is signed by its own key. On this tenant both anchors sign with one federation key and both authorities sign with one authority key. The two trust domains are separated by entity identifier and governance record, and a consumer's pin is the pair of entity identifier and key, so a chain to the wrong anchor is refused on the issuer. Cryptographic separation is absent: the holder of the shared key can mint a statement in either anchor's name, and on this tenant that holder is Raidiam in both cases.
- Lifecycle stage
- Keys
- Lives in
- Raidiam Connect
- Checked by
- Test E11
- Artefacts cited
- 4
-
Read on the wire 2026-09-09. the first anchor's signing key identifier
-
Read on the wire 2026-09-09. the second anchor, the same key identifier
-
Read on the wire 2026-09-09. the second authority signs with the same authority key as the first
-
docs/ledger.yaml#external
the product change record, to be raised beside the post quantum signer question
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://federation.directory.showcase.raidiam.io/federation_entity/ec54688a-3e67-414d-84e6-9372e736e4c2/.well-known/openid-federation
the first anchor's signing key identifier 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, the same key identifier 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"
https://authority.directory.showcase.raidiam.io/authority/5bb31966-3818-4454-808d-3d94f9989af7/.well-known/openid-federation
the second authority signs with the same authority key as the first Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/5bb31966-3818-4454-808d-3d94f9989af7/.well-known/openid-federation"
The vouched key set of a recognition statement
Not observed on this tenantThe design requires that the statement about a recognised root vouches only the keys that root publishes. On this tenant the statement about a self managed entity whose organisation holds no key vouches one key, the tenant's hosted entity signing key, which the subject does not hold. In the entity generated model the subject holds its own private key and Connect does not receive it. The key this statement vouches is the tenant's hosted entity signing key, which Connect adds by product behaviour rather than from anything the subject supplied.
- Lifecycle stage
- Keys
- Lives in
- Raidiam Connect
- Checked by
- Test E11
- Artefacts cited
- 3
-
authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch
Read on the wire 2026-09-09. one vouched key for an organisation that holds none
-
docs/verification/tenant-showcase-2026-09.md#row-g
Read on the wire 2026-09-09.
-
docs/ledger.yaml#T1
the product change record
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://agents.showcase.raidiam.io/scratch/agent
one vouched key for an organisation that holds none 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://agents.showcase.raidiam.io/scratch/agent"
A trust mark whose subject is an authority
Not observed on this tenantThe design requires that a consumer pinning a scheme's anchor for marks can ask the enterprise authority whether it recognises that scheme as an issuer of accreditation marks. On this tenant the mark endpoint refuses a subject that is an authority, so the recognition record the estate declares cannot be read. Every consumer that pins a marks anchor therefore fails closed on a leaf reached through an accredited root, which on this estate is the API platform and the workforce platform. Until this changes, an external party's agent resolves at the enterprise authority and is refused at the enterprise platform, and no page may say that platform admits it.
- Lifecycle stage
- Discover
- Lives in
- Raidiam Connect
- Checked by
- Test page:use-cases/across-the-boundary
- Artefacts cited
- 3
-
authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/trust-mark
Read on the wire 2026-09-27. answers 500 server_error, unsupported entity type: authority. Read again by the lead on 27 September at 17:18 and the answer was the same
-
authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/fetch
Read on the wire 2026-09-27. answers 404 unknown entity identifier, while the same authority's list carries that identifier
-
docs/ledger.yaml#T5
the product change record, to raise
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/845f7286-3c74-4d91-9354-af110dbd33c8/trust-mark?sub=https://authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2&trust_mark_type=https://trustmark.directory.showcase.raidiam.io/trustmark/7b60c9fa-00dd-46d9-80de-cd899ee5a58d/tarnbrook-agents/tarnbrook.recognised.scheme
answers 500 server_error, unsupported entity type: authority. Read again by the lead on 27 September at 17:18 and the answer was the same Read on the wire 2026-09-27.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/trust-mark?sub=https://authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2&trust_mark_type=https://trustmark.directory.showcase.raidiam.io/trustmark/7b60c9fa-00dd-46d9-80de-cd899ee5a58d/tarnbrook-agents/tarnbrook.recognised.scheme"
https://authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/fetch?sub=https://authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2
answers 404 unknown entity identifier, while the same authority's list carries that identifier Read on the wire 2026-09-27.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/845f7286-3c74-4d91-9354-af110dbd33c8/fetch?sub=https://authority.directory.showcase.raidiam.io/authority/2ec610f4-6e58-46c3-b833-05c4ab1cabe2"
The working
What the figures above leave to words.
What it means for the business
Larkspur Partners and Quillon Software each run their own agents under their own root. You hold one record about each: the recognition, and the ceiling on that hop. You issue their agents nothing.
Where the authority comes from
Each side pins its own anchor and folds its own policy. A named person at your organisation revokes the recognition, and a named officer at the scheme revokes the accreditation. Each is one governed record. Revoking the recognition takes the partner's root off your authority's list within seconds, and a consumer holds its last resolve for at most its configured resolution lifetime. What revoking the accreditation reaches on this tenant is on the lifecycle page.
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.
The three identifiers the ceiling is made of
Each row below links the artefact behind it, read on the wire on the date printed beside it. The instrument on the claim page reads none of these: it works out what the estate declaration permits, and says Derived under its answer.
The same identity is admitted in two trust domains by two chains that end at two anchors, separated by entity identifier and governance record. One hosted entity configuration names both authorities and carries a mark from each domain. Observed
The claim page says the plain form of this: they get only what you allowed. The instrument on the claim page prints the role and its operator, and these are the three names behind them.
tarnbrook.external.reader is a role your own organisation declares. It is one of the three kinds of external admission the Tarnbrook authority recognises, beside the two division ceilings, and it is the kind both partner roots on this figure carry. A recognised root carries exactly one kind, and the kind it carries sets the ceiling on its hop, so the mark that admits a party and the ceiling it gets are one record rather than two.
authorization_details_types is the openid_relying_party metadata parameter that lists the kinds of request an agent may make. The two this role permits are records.read and transfer.status.
subset_of is a metadata policy operator defined by OpenID Federation (open standard) rather than a Raidiam invention. An authority publishes a metadata policy in the statement it signs about a member below it, and the operator says how that policy meets what the member asserts about itself. subset_of keeps the values that appear in both, so an agent that asserts more than the ceiling resolves to the intersection, and one that asserts less keeps its own shorter list. The same role sets token_endpoint_auth_method with one_of, which is the other narrowing operator: the leaf still chooses its method, from the set the ceiling allows.
Two operators, and they bound an agent differently
The instrument on the claim page draws the Tarnbrook hop, where tarnbrook.external.reader sets authorization_details_types with subset_of and intersects the row with what the leaf asserts. The scheme's own row is the other operator: aldercross.accredited.agent sets the same parameter with value, which replaces what the leaf asserts. Both rows carry records.read and transfer.status. A member that resolves an agent through the Aldercross anchor therefore reads the sector ceiling outright, and a member that resolves the same agent through its own recognition hop reads the intersection.
Check it against the running estate
Every surface this use case touches, and the host that answers for it.
Which partner should be your second trust domain, and what ceiling would you set?
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