Skip to content

Conversation

@rmiccoli
Copy link
Contributor

@rmiccoli rmiccoli commented Oct 24, 2025

This PR implements one of the client/Relying Party registration mechanisms defined by OpenID Federation.

Automatic Registration allows an RP to send Authentication Requests without a prior registration step with the OP. When the RP reaches the OP’s Authorization Endpoint, the OP automatically registers the RP if it can build and validate a trust chain for the RP - either by resolving the RP’s Entity Configuration from its entity_id or by using a provided trust_chain - and a common Trust Anchor exists.

At the Authorization Endpoint, in fact, the RP can use a Request Object by sending the request parameter, a signed JWT containing some required claims (aud, client_id, iss, jti) and optionally iat and trust_chain.

Note that the OP assigns the client_id to the RP, which must correspond to its entity_id (URL).

Reference: https://openid.net/specs/openid-federation-1_0.html#name-automatic-registration

@rmiccoli rmiccoli self-assigned this Oct 24, 2025
@rmiccoli rmiccoli linked an issue Oct 24, 2025 that may be closed by this pull request
@federicaagostini
Copy link
Contributor

Remember also to run the disableExpiredClients task only when openid-fed is included among the active profiles.

@rmiccoli
Copy link
Contributor Author

Remember also to run the disableExpiredClients task only when openid-fed is included among the active profiles.

Done :)

to the maximum allowed by TEXT
and send client id and secret url-encoded
in basic auth header
also during client update
after trust chain re-validation.
Previously, if the client was expired, it was re-created
by violating the unique constraint on client_id, which
corresponds to the entity_id (URL) of the RP.
@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Automatic Client Registration (OP Role)

3 participants