Internet-Draft oauth-cimd-sw-stmt-registration November 2026
McGuinness Expires 6 May 2027 [Page]
Workgroup:
Web Authorization Protocol
Internet-Draft:
draft-mcguinness-oauth-cimd-sw-stmt-registration-01
Published:
Intended Status:
Standards Track
Expires:
Author:
K. McGuinness
Independent

Client ID Metadata Document Software Statement Registration

Abstract

This specification defines how an authorization server registers a client through OAuth 2.0 Dynamic Client Registration (RFC 7591) on a Client ID Metadata Document (CIMD) software statement, as defined in a companion specification. Such a statement carries no client metadata of its own. It vouches for the exact octets of the client's document, and the authorization server takes every registered metadata value from that document rather than from the registration request. This specification also bounds the registration's validity by the statement's expiry, which RFC 7591 leaves unbounded, and defines how a client renews the registration by delivering a later statement, which also updates the registered metadata.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 6 May 2027.

▲

Table of Contents

1. Introduction

[STATEMENT] defines a software statement binding an issuer's review to the exact octets of a Client ID Metadata Document (CIMD) [CIMD], and admission on that review without registration. This specification serves deployments retaining [RFC7591] registration, for example to assign their own client identifiers or manage registrations under [RFC7592].

[RFC7591] already supports software statements whose metadata takes precedence over the registration request (Sections 2.3 and 3.1.1 of [RFC7591]). A statement under [STATEMENT], however, carries a document digest instead of metadata. Verifying it under [RFC7591] alone would leave the request's unreviewed redirection URIs and keys as the registered metadata. [RFC7591] also defines no registration expiry or renewal tied to the statement.

This specification defines how servers derive registrations from the reviewed document (Section 3), bound their validity by the statement (Section 4), and renew them with later statements that also update their metadata (Section 6). The same review can therefore govern both registered clients and runtime admission. It extends [STATEMENT], which does not depend on it.

1.1. Protocol Overview

The following non-normative sequence summarizes a statement-governed registration:

  1. The client sends an [RFC7591] registration request that carries a statement in the software_statement member.

  2. The authorization server validates the statement, obtains the document at the statement's sub, and compares its digest with the statement's cimd_digest claim. It registers the client under a client identifier it assigns, with metadata taken from that document, records the statement as the registration's governing statement, and returns the registration's expiry in the registration_expires_at member (Section 3, Section 4).

  3. The registration is valid until the governing statement ceases to be current, at the latest at its effective expiry (Section 4).

  4. To renew the registration, the client delivers a later statement from the same issuer in a token or pushed authorization request under the registration or, if supported, in an [RFC7592] update request. If that statement is a valid replacement, the authorization server takes the registration's metadata from the document the statement reviews, and the statement becomes the governing statement (Section 6).

  5. If the governing statement ceases to be current without a replacement, the registration ceases to be valid. The authorization server rejects authorization, token, and pushed authorization requests and [RFC7592] update requests under it, unless the request delivers a replacement that restores it (Section 4).

A public-client registration can also be renewed by a repeated registration request (Section 3.3).

2. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

This specification uses terminology from [RFC6749] (OAuth), [RFC7591] (client metadata and software statements), and [CIMD] (Client ID Metadata Documents), and the terms defined in Section 2 of [STATEMENT].

This specification defines the following terms.

Delivery:

Carrying a statement in a request under a statement-governed registration, in one of the locations Section 6 lists, so that it can renew the registration. A delivery is not a runtime presentation.

Governing Statement:

The statement that bounds a statement-governed registration: the one consumed at registration or, after a renewal, the replacement that renewed it most recently (Section 6). The authorization server identifies it by its iss and jti claims.

Replacement:

A statement with the governing statement's iss and sub claims and a later iat, delivered under the registration (Section 6) or carried in a repeated public-client registration request (Section 3.3).

Statement-Governed Registration:

An [RFC7591] client registration created from a statement under this specification (Section 3).

3. Consumption at Registration

The statement is consumed in the software_statement member of an [RFC7591] registration request. The authorization server validates it under Section 3.2 of [STATEMENT] and registers the client under its ordinary registration policy. If a required issuer covers the statement's sub in the request's tenant (Section 4 of [STATEMENT]), the authorization server MUST NOT create a registration on a statement from another issuer.

A required issuer constrains only registrations made on statements, because a registration made without a statement names no client identifier URL for a required issuer to cover. A deployment that needs every registration in a tenant reviewed requires a statement for every registration there and rejects a request that carries none with unapproved_software_statement (Section 7).

The retrieval requirements of Sections 3.1 and 5.3 of [STATEMENT] apply to retrieving the document as they apply to a runtime presentation, and a server can apply the bounds of Section 11.2 of [STATEMENT]. Following the order of Section 5.1 of [STATEMENT], the authorization server completes every check that needs no client-controlled retrieval before resolving the document.

The reviewed document takes the role that [RFC7591] gives a statement's own values. In deriving a registration's metadata, at registration or for a replacement (Section 6), the authorization server:

Client metadata in a registration or update request does not contribute to the registration. The registration's software_statement is its governing statement (Section 6). The registered client_id is assigned as [RFC7591] provides, and the document's own client_id member is the URL recorded as the governing statement's sub. The authorization server MUST NOT assign that URL as the registered client_id, which would make a request carrying it ambiguous between the registration and the CIMD client the URL identifies ([CIMD]). A member the document omits takes its [RFC7591] default, except token_endpoint_auth_method, which is registered as above. The registration's metadata changes only when a replacement is applied (Section 6).

The authorization server MUST reject the registration, or a replacement (Section 6), if any of the following holds:

Unlike runtime presentation (Section 5 of [STATEMENT]), registration has no review-only form: the rejections above cover the document conditions that make a presentation review-only.

Software that the server would register with none but does not register under Section 3.2 can instead use runtime presentation if it meets the public-client binding requirements of Section 5.6.2 of [STATEMENT].

3.1. Tenant Restriction

If the statement's decision is confined to one of the authorization server's tenants, by its aud_tenant claim or by the server's trust configuration for its issuer (Section 4 of [STATEMENT]), the registration is restricted to that tenant. Otherwise it carries no tenant restriction under this specification. A replacement (Section 6) determines the restriction as follows:

Table 1
Registration before Replacement's decision After
Restricted to a tenant Confined to that tenant, or not confined and valid in that tenant (Section 3.2 of [STATEMENT]) Restricted to that tenant
Restricted to a tenant Confined to another tenant Fails validation (Section 3.2 of [STATEMENT])
No restriction, confidential client Confined to a tenant Restricted to that tenant
No restriction, public client Confined to a tenant Not a valid replacement
No restriction Not confined to a tenant No restriction

The tenant rules of steps 1 and 4 of Section 5 also apply to any other request under the registration, including [RFC7592] read and delete requests. To an [RFC7592] read, update, or delete request that these rules treat as from a client it has not registered, the authorization server MUST respond with HTTP 403 Forbidden (Sections 2.1 through 2.3 of [RFC7592]) and MUST NOT revoke the registration access token, since the registration remains valid where these rules do not apply.

3.2. Public Clients

An authorization server MAY register a client with token_endpoint_auth_method of none (Section 3), creating a public-client registration. Such a registration has no client credential and is shared among installations of the software. A server that registers such a client:

  • MUST reject the registration if the document lists no redirection URI.

  • MUST issue tokens under the registration only through the authorization code grant and the refresh of grants it opens.

  • MUST apply Section 5.6.2 of [STATEMENT] to every authorization request under the registration, and MUST require code redemption and every refresh of the resulting grant to prove the key bound there.

  • MUST NOT issue a registration access token [RFC7592] for the registration.

3.3. Repeated Registration

A registration request is repeated if its statement has the iss and sub claims of the governing statement of an existing statement-governed registration, valid or not, that:

  • is not restricted to another tenant (Section 3.1), and

  • is restricted to the request's tenant, if that tenant requires a tenant-scoped decision (Section 3.2 of [STATEMENT]).

One current statement can be consumed more than once, subject to the bounds of Sections 11.2 and 11.3 of [STATEMENT] and the server's registration policy. A server can count registrations toward the bound on establishments of Section 11.3 of [STATEMENT], but the bound stays effective only if a registration under which no access token has been issued does not count toward it, since a holder of a copy of the statement can create one.

If the registration a request repeats is a confidential-client registration, local policy can reject the request, treat it as idempotent, or create another registration. An idempotent response MUST NOT return the existing registration's credentials, such as its registration_access_token member. A common default is one registration per iss and sub, per tenant on a multi-tenant server, at the cost Section 11.1 describes.

If the registration a request repeats is a public-client registration (Section 3.2), the authorization server MUST NOT create another registration and handles the request by its statement, once the statement validates:

Table 2
Statement in the repeated request Outcome
The governing statement, identified by its iss and jti The existing registration is returned
A statement with a later iat than the governing statement's Evaluated as a replacement (Section 6); the renewed registration is returned or the request is rejected (Section 7)
Any other statement with an iat no later than the governing statement's The request is rejected

4. Registration Validity

The following validity model applies to every statement-governed registration:

If a request that carries no replacement is rejected because the registration has ceased to be valid, the rejection MUST NOT by itself cause the authorization server to revoke refresh tokens as it does on detecting refresh-token replay (Section 4.14.2 of [RFC9700]).

If the authorization server records a required issuer for a tenant (Section 4 of [STATEMENT]), it MUST reject an authorization, token, or pushed authorization request, or an [RFC7592] update request, in that tenant under any statement-governed registration whose governing statement's sub falls within a covered namespace, unless a current statement from the required issuer governs the registration as step 3 of Section 5 leaves it. This rule applies whatever tenant the registration was created in and whenever the requirement was configured. Without this rule, withholding the required issuer's statement would keep such a registration in use after the issuer withdrew or stopped renewing its decision. A registration whose governing statement is from another issuer cannot meet this rule, since a replacement keeps the governing statement's iss (Section 6). Its client registers again with a statement from the required issuer.

Neither the validity model nor the required-issuer rule rejects [RFC7592] read and delete requests.

The registration_expires_at member is a NumericDate (Section 2 of [RFC7519]) giving the latest time the registration remains valid or, for a registration that has ceased to be valid, the time it ceased. The authorization server:

5. Requests Under a Registration

The authorization server MUST process an authorization, token, or pushed authorization request, or an [RFC7592] update request, under a statement-governed registration in the following order, stopping at the first step that rejects the request or treats it as from a client the server has not registered:

  1. If the registration is restricted to a tenant (Section 3.1) and the request, including one that delivers a statement, is made in another tenant, it MUST treat the request as from a client it has not registered.

  2. It authenticates a token or pushed authorization request under the registration's own client authentication method, and an [RFC7592] update request as [RFC7592] requires, against the retained registration even if the registration has ceased to be valid. A token or pushed authorization request under a public-client registration has no client credential to authenticate (Section 3.2).

  3. It classifies any statement the request delivers by its claims, before validating it, and evaluates a replacement (Section 6). A replacement applied at this step stands even if a later step, or the request's grant, rejects the request.

  4. It applies the rejections of Section 4 to the registration as step 3 leaves it. If the request is made in a tenant where the authorization server requires a tenant-scoped decision (Section 3.2 of [STATEMENT]) and the registration, as step 3 leaves it, carries no tenant restriction, it MUST treat the request as from a client it has not registered.

  5. It evaluates the request against the registration's metadata.

6. Renewal

A client renews a statement-governed registration by delivering a replacement statement in one of the following, authenticated as step 2 of Section 5 provides:

A delivery is a registration use of the statement (Section 3 of [STATEMENT]). A registration request is not a delivery, and renews an existing registration only as Section 3.3 provides for a public-client registration. A statement neither renews nor alters a registration that is not statement-governed, and runtime presentation (Section 5 of [STATEMENT]) alters no registration's metadata.

The authorization server treats a delivered statement as the first matching row of the following table provides:

Table 3
Statement delivered Treatment
The governing statement itself, identified by its iss and jti No replacement
In an [RFC7592] update request, any statement with the governing statement's iss and sub and an iat no later than the governing statement's No replacement
At the token or pushed authorization request endpoint, any other statement with the governing statement's iss and sub and an earlier iat Earlier than the governing statement. The request is rejected
A statement with the governing statement's iss and sub and a later iat A replacement, evaluated below
Any other statement, such as one with another iss or sub Fails the replacement rules below

An [RFC7592] update request repeats the statement a previous response returned (Section 3.2.1 of [RFC7591]; Section 2.2 of [RFC7592]), which can be older than the governing statement. An [RFC7592] read or update response returns the governing statement as its software_statement member.

The replacement MUST satisfy the following:

Renewing on the statement alone would leave in the registration a key, redirection URI, or scope that the new review removed.

A request whose replacement fails the rules above is rejected (Section 7) whether or not the registration has ceased to be valid. A rejected delivery leaves the governing statement unchanged.

When a replacement satisfies these rules, the authorization server MUST, in a single atomic update, make it the governing statement and give the registration the replacement's effective expiry, the metadata derived from its document (Section 3), and any tenant restriction it adds (Section 3.1). Concurrent deliveries resolve to the most recently issued statement. A valid replacement restores a registration that has ceased to be valid.

Access issued under the registration after that update, including on refresh of a grant issued before it, MUST fall within the re-derived metadata.

If every grant a confidential-client registration permits needs an authorization request or a refresh token, and the authorization server does not support [RFC7592] update requests for the registration, the server MUST support pushed authorization requests [RFC9126] for the registration. Otherwise such a client, if it holds no refresh token, could not restore a registration that has ceased to be valid. A public-client registration also renews through a repeated registration request (Section 3.3).

7. Error Responses

A rejection this specification defines, at a client registration endpoint or at the client configuration endpoint of [RFC7592], uses the error response of Section 3.2.2 of [RFC7591], with the HTTP status code that section specifies, except that an authorization server SHOULD respond with HTTP status code 503 to a request it rejects with the temporarily_unavailable error code. Such a rejection uses the following error codes:

invalid_software_statement:

Any of the following:

  • The statement is malformed, fails signature or claim validation for a reason unapproved_software_statement does not cover, is expired or otherwise not current (Section 2 of [STATEMENT]), or is superseded under an extension the server implements.

  • The document's digest does not equal the statement's cimd_digest claim (Section 3).

  • An [RFC7592] update request is rejected under Section 4.

  • A statement delivered at the client configuration endpoint, or the statement of a repeated public-client registration request evaluated as a replacement (Section 3.3), fails the replacement rules of Section 6 where this section assigns no other code, such as a document that does not permit the registration's token_endpoint_auth_method.

  • The statement of a repeated public-client registration request is not the governing statement and has an iat no later than the governing statement's (Section 3.3).

unapproved_software_statement:

The statement is well formed but not acceptable here: its issuer is not configured, its aud excludes this server, its sub is outside the client identifier namespaces the issuer can attest, its aud_tenant is not this request's tenant or is absent when required, its issuer is confined to another tenant, or its statement_uses excludes this use. This code is also used if a statement this server requires is absent from a registration request, if Section 3 forbids creating the registration because a required issuer covers the statement's sub and the statement is from another issuer, or if the server's policy refuses a repeated registration request (Section 3.3).

invalid_client_metadata:

Any of the following holds for the reviewed document:

  • It contains duplicate member names (Section 5.2 of [STATEMENT]).

  • It fails validation as [CIMD] requires (Section 3).

  • It carries metadata this server's policy refuses.

  • It cannot be obtained, including over the server's size bound, for a reason other than a retrieval that did not complete (Section 5.3 of [STATEMENT]).

  • It permits a method based on a shared symmetric secret (Section 3).

  • It permits no method that the server supports and its policy allows (Section 3).

  • The server would register the client with none (Section 3) and does not register it under Section 3.2.

invalid_redirect_uri:

The reviewed document carries a redirection URI another application could claim (Section 3), or the server would register the client with none and the document lists no redirection URI (Section 3.2).

temporarily_unavailable:

A retrieval the request needs did not complete (Section 5.3 of [STATEMENT]).

Rejections at other endpoints use the error responses of Section 6 of [STATEMENT]. At the token and pushed authorization request endpoints, a request that fails the authentication of step 2 of Section 5 is rejected with invalid_client. Subject to the order of Section 6 of [STATEMENT], a token, pushed authorization, or authorization request is rejected with statement_required (Section 6.1 of [STATEMENT]) if:

At the authorization endpoint, the redirect_uri is validated against the registration's redirection URIs before an error is redirected (Section 4.1.2.1 of [RFC6749]).

Rejections of a registration management request for other reasons use the responses [RFC7592] specifies, such as the HTTP 403 Forbidden response that Section 3.1 requires.

8. Example

The following is a non-normative example of a registered client, whose client_id is s6BhdRkqt3, renewing its registration by delivering a replacement statement on an ordinary refresh, authenticated under its registered private_key_jwt method (line breaks for display purposes only):

POST /token HTTP/1.1
Host: as.example
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
&client_id=s6BhdRkqt3
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A
client-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6IjIwMjYtMDgifQ...
&software_statement=eyJ0eXAiOiJzb2Z0d2FyZS1zdGF0ZW1l...

The authorization server validates the replacement and re-derives the registration's metadata (Section 6), returning the registration's new expiry in the registration_expires_at member of the token response. Once the registration has ceased to be valid, the same request without a replacement is rejected with statement_required (Section 7).

9. Authorization Server Metadata

This specification defines the following authorization server metadata [RFC8414] value:

software_statement_registration_supported:

OPTIONAL. Boolean value indicating whether the authorization server supports this specification. If omitted, the default value is false. A value of true means every registration the server creates from a statement of the profile in Section 3 of [STATEMENT] is statement-governed, and does not imply support for runtime presentation.

10. Deployment Considerations

This section gives guidance to operators. It adds no requirement.

An issuer outage longer than a statement-governed registration's remaining lifetime makes the registration cease to be valid (Section 4) until the client delivers a replacement (Section 6). The lifetimes an issuer chooses set the renewal cadence (Section 12.3 of [STATEMENT]). A deployment ought to have clients renew well before effective expiry, and ought to weigh that cadence against how quickly a narrowed or withdrawn review needs to take effect.

A client that delivers a replacement at the token or pushed authorization request endpoint authenticates against the retained registration (step 2 of Section 5). If it rotates a key carried inline in its document's jwks, it authenticates such a request with the outgoing key until a replacement over the new document has been applied, and with the new key afterward. It retires the outgoing key only after that renewal succeeds. An [RFC7592] update request authenticates with the registration access token instead (Section 2 of [RFC7592]).

11. Security Considerations

The security considerations of Section 13 of [STATEMENT] and Section 5 of [RFC7591] apply.

11.1. Statements at Registration

A statement consumed at registration is a reusable bearer artifact until it expires. Its audience, lifetime, and statement_uses claim (Section 3 of [STATEMENT]) and the registration policy of Section 3.3 limit what a copied statement can create. A statement a client publishes at its software_statements_uri (Section 5.5 of [STATEMENT]) can be read by anyone, so an issuer ought not to permit registration in such a statement.

Taking every value from the document prevents metadata substitution. A request-supplied value for a member the document omits, such as a jwks member beside a document naming only jwks_uri, would give any holder of a copy a registration with reviewed branding and the holder's own key. A document that declares no authentication method permits only none (Section 5 of [CIMD]). Registering it under the [RFC7591] default would register a shared-secret method, which [CIMD] forbids (Section 4.1 of [CIMD]) and the issuer never reviewed. An issuer that omits aud from a statement permitting registration accepts that any server trusting the issuer can register the software on the strength of a copy.

Under the one-registration default (Section 3.3), whoever first registers with a copy of a statement holds that registration and its registration access token, and can keep the software's publisher from registering there. Such a holder cannot authenticate as the client if the registered token_endpoint_auth_method requires a key the document carries.

If the publisher's statement permits presentation and the server supports it, the publisher's software can still be admitted through runtime presentation (Section 5 of [STATEMENT]). Otherwise, recovery requires intervention by the server's operator or a registration policy other than the one-registration default. This specification defines no way to displace such a registration.

A public-client registration (Section 3.2) has no credential to take, and a repeated request is answered with it (Section 3.3), so its first registrant gains nothing over later ones. Any holder of a copy can use it. Authorization codes under it reach only the reviewed redirection URIs, and its grants are bound to keys that installations hold. A holder of a copy therefore gains what it would gain at runtime, including the exposure Section 13.4 of [STATEMENT] describes for a holder that controls the user agent.

11.2. Credential Theft and Renewal

Renewal proves possession of the registration's credential and the currency of a statement sharing the governing statement's iss and sub, not that the renewing party is the reviewed software. An attacker holding a stolen client credential can renew indefinitely with the newer statements distributed to every deployment of the software. A public-client registration's renewal proves only that the replacement is current. No protection is lost, since any party can already use that registration.

A narrower review takes effect at a registration when the client delivers it or when the governing statement ceases to be current. Withdrawal before then requires an extension (Section 9 of [STATEMENT]).

Deployments ought to pair statement-governed registrations with credential rotation, sender-constrained client authentication, and the bounds that Sections 11.2 and 11.3 of [STATEMENT] and Section 3.3 describe, and ought to treat a credential compromise as requiring re-registration rather than renewal. At runtime, a confidential client's key must appear in the reviewed document and, on refresh, in the document currently served (Sections 5.6.1 and 5.7.1 of [STATEMENT]). Once the server observes that the document no longer carries a compromised key, which can take up to the reuse bounds of Section 5.3 of [STATEMENT], refresh requests made with that key fail.

11.3. Registration Fraud and Impersonation

Open registration permits client_name, logo_uri, and client_uri values that imitate trusted software on consent screens (Section 5 of [RFC7591]). Requiring a statement replaces self-asserted branding with issuer-reviewed values, though content served at a URL the document carries, such as a logo, can change after review (Section 13.1 of [STATEMENT]). Servers that render such values on consent screens ought to prefer those from a reviewed document and to apply heightened scrutiny to registrations that claim user-visible branding without a statement.

Requiring a statement also means a removed client cannot register again under a new client identifier URL without another issuer decision.

11.4. Observable State

A retained registration that has ceased to be valid is distinguishable from an unknown client (Section 5, Section 7). At the token and pushed authorization request endpoints, only a requester that authenticates as the registration's client can observe this, except for a public-client registration. At the authorization endpoint, anyone who sends an authorization request naming the client and one of its registered redirection URIs learns from the statement_required redirection that the registration has ceased to be valid. If an observer knows the governing statement's exp, a lapse before that time shows that an extension ended the statement or that the server caps the lifetime it honors for the issuer.

As at runtime (Section 13.8 of [STATEMENT]), these disclosures are accepted, and they reveal nothing of the server's issuer trust configuration beyond the fact and time that the registration ceased to be valid (Section 6.6 of [STATEMENT]). Publishing software_statement_registration_supported discloses that statement-governed registrations expire there, which a client needs to know before registering.

12. Privacy Considerations

The privacy considerations of Section 14 of [STATEMENT] and Section 6 of [RFC7591] apply. A registration request reveals to the authorization server the same information as a runtime presentation.

13. IANA Considerations

13.1. OAuth Dynamic Client Registration Metadata Registry

This specification requests registration of the following value in the IANA "OAuth Dynamic Client Registration Metadata" registry established by [RFC7591]. An authorization server returns this member in a registration response:

Client Metadata Name:

registration_expires_at

Client Metadata Description:

Latest time at which a statement-governed registration remains valid, as a NumericDate.

Change Controller:

IETF

Specification Document(s):

This specification, Section 4

13.2. OAuth Parameters Registry

This specification requests registration of the following parameter in the IANA "OAuth Parameters" registry established by [RFC6749], for the responses to requests that renew a statement-governed registration or carry its governing statement:

Parameter Name:

registration_expires_at

Parameter Usage Location:

token response, pushed authorization request response

Change Controller:

IETF

Specification Document(s):

This specification, Section 4

13.3. OAuth Authorization Server Metadata Registry

This specification requests registration of the following value in the IANA "OAuth Authorization Server Metadata" registry established by [RFC8414]:

Metadata Name:

software_statement_registration_supported

Metadata Description:

Boolean value indicating whether the authorization server supports Client ID Metadata Document software statement registration.

Change Controller:

IETF

Specification Document(s):

This specification, Section 9

13.4. OAuth Extensions Error Registry

This specification requests that IANA update the existing temporarily_unavailable entry, adding the registration endpoint and the client configuration endpoint to its usage locations and this specification as a reference:

Error Name:

temporarily_unavailable

Error Usage Location:

registration endpoint, client configuration endpoint, in addition to the locations already registered

Related Protocol Extension:

OAuth 2.0 Authorization Framework

Change Controller:

IETF

Specification Document(s):

[RFC6749], this specification (Section 7)

14. Normative References

[CIMD]
Parecki, A. and E. Smith, "OAuth Client ID Metadata Document", Work in Progress, Internet-Draft, draft-ietf-oauth-client-id-metadata-document-03, , <https://datatracker.ietf.org/doc/html/draft-ietf-oauth-client-id-metadata-document-03>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC6749]
Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, , <https://www.rfc-editor.org/rfc/rfc6749>.
[RFC7519]
Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, , <https://www.rfc-editor.org/rfc/rfc7519>.
[RFC7591]
Richer, J., Ed., Jones, M., Bradley, J., Machulak, M., and P. Hunt, "OAuth 2.0 Dynamic Client Registration Protocol", RFC 7591, DOI 10.17487/RFC7591, , <https://www.rfc-editor.org/rfc/rfc7591>.
[RFC7592]
Richer, J., Ed., Jones, M., Bradley, J., and M. Machulak, "OAuth 2.0 Dynamic Client Registration Management Protocol", RFC 7592, DOI 10.17487/RFC7592, , <https://www.rfc-editor.org/rfc/rfc7592>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8414]
Jones, M., Sakimura, N., and J. Bradley, "OAuth 2.0 Authorization Server Metadata", RFC 8414, DOI 10.17487/RFC8414, , <https://www.rfc-editor.org/rfc/rfc8414>.
[RFC9126]
Lodderstedt, T., Campbell, B., Sakimura, N., Tonge, D., and F. Skokan, "OAuth 2.0 Pushed Authorization Requests", RFC 9126, DOI 10.17487/RFC9126, , <https://www.rfc-editor.org/rfc/rfc9126>.
[RFC9700]
Lodderstedt, T., Bradley, J., Labunets, A., and D. Fett, "Best Current Practice for OAuth 2.0 Security", BCP 240, RFC 9700, DOI 10.17487/RFC9700, , <https://www.rfc-editor.org/rfc/rfc9700>.
[STATEMENT]
McGuinness, K., "Client ID Metadata Document Software Statement", Work in Progress, Internet-Draft, draft-mcguinness-oauth-cimd-sw-stmt-00, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-cimd-sw-stmt-00>.

Document History

[[ To be removed from the final specification ]]

-01

-00

Author's Address

Karl McGuinness
Independent