Skip to content

Ambiguity in fetch endpoint response when iss and sub are the same #30

@jcmelati

Description

@jcmelati

Hello!

I believe I have identified an inconsistency in the OpenID Federation specification related to the /fetch endpoint, specifically when the iss and sub parameters are the same. In this case, the endpoint currently returns an entity configuration, in accordance with section 8.1.1 which states regarding the sub attribute that "if this parameter is omitted, it is considered to be the same as the issuer and indicates a request for a self-signed Entity Configuration".

The specification also states that "an Entity MUST publish Subordinate Statements about its Immediate Subordinates via its fetch endpoint" (source).

However, this is problematic because:

  • The fetch endpoint is intended to retrieve Subordinate Statements.
  • Although Entity Configuration Statement and Subordinate Statement have similar data structures, they are not exactly the same.
  • An entity cannot logically be a subordinate of itself.

Proposal:
To resolve this, the specification should be updated so that when iss and sub are the same in a /fetch request, the endpoint returns invalid_request (Bad Request 400). This will clarify that the fetch endpoint should only be used to retrieve Subordinate Statements, not Entity Configurations.

Supporting evidence:
In the Italian federation, we've observed that the payloads from the /.well-known/openid-federation and /fetch endpoints differ significantly, specifically on the metadata part that is present on the Entity Configuration Statement, but not on the Subordinate Statement.

Suggested Action:
Amend the spec to explicitly state that the fetch endpoint should return invalid_request (400 Bad Request error) if iss and sub are identical.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions