Internet-Draft CIBA Push Device Binding July 2026
Bandyopadhayaya Expires 30 January 2027 [Page]
Workgroup:
Web Authorization Protocol
Internet-Draft:
draft-bandyopadhayaya-oauth-ciba-push-binding-00
Published:
Intended Status:
Standards Track
Expires:
Author:
J. Bandyopadhayaya
LoginRadius

CIBA Binding for OAuth Push-Based Authentication Device Discovery

Abstract

A companion specification, "Discovery and Device Lifecycle for OAuth Push-Based Authentication", defines a generic, back-channel-protocol-agnostic device registration, attestation, and lifecycle layer for out-of-band OAuth 2.0 authenticator devices. This document is the thin binding that lets a device registered under that specification be woken by OpenID Connect Client-Initiated Backchannel Authentication (CIBA) Core's authorization endpoint: one request parameter, one additive error code, and a statement of how CIBA's existing binding_message composes with the base document's interaction-type ceremony. This document adds no new endpoints and no new discovery fields of its own.

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 30 January 2027.

Table of Contents

1. Introduction

[I-D.bandyopadhayaya-oauth-push-device] (the "base document") defines a generic device registration, attestation, and lifecycle layer. This document binds that generic layer to OIDC CIBA Core [OIDC.CIBA]'s /bc-authorize endpoint. Everything other than the two additive elements defined here, discovery document shape, registration, revocation, key rotation, device management, account recovery, push transport, and the attestation and registry trust model, is defined entirely by the base document and is not repeated here.

This split follows the precedent of WebAuthn [WebAuthn2] (a browser-facing API defined by the W3C) and CTAP (an authenticator-facing protocol defined by the FIDO Alliance): one generic protocol-facing layer, and one thin binding to a specific consuming interface.

1.1. Terminology

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 document uses the terminology defined in [I-D.bandyopadhayaya-oauth-push-device], and the terminology defined in OIDC CIBA Core [OIDC.CIBA] (in particular auth_req_id and binding_message).

2. Relationship to Existing Standards

OIDC CIBA Core defines /bc-authorize, auth_req_id, and the poll/ping/push delivery modes, plus discovery fields on /.well-known/openid-configuration. It assumes an authenticator is already registered with the AS; [I-D.bandyopadhayaya-oauth-push-device] fills that gap generically, and this document connects the two.

An AS implementing this binding publishes both discovery documents: /.well-known/openid-configuration (with CIBA's standard fields, including backchannel_authentication_endpoint) and /.well-known/oauth-push-notification (per [I-D.bandyopadhayaya-oauth-push-device]). The two are independent documents operated by the same AS; nothing in either is required to reference the other.

This binding modifies CIBA's request/response surface in exactly two places (Section 3, Section 4) and nowhere else. All device registration, key rotation, revocation, and push transport happen exactly as [I-D.bandyopadhayaya-oauth-push-device] defines, with zero CIBA-specific variation.

3. Device Revocation and the CIBA Error Surface

The base document requires that revoking a device cascade to invalidate any pending authentication request bound to it, and defers the concrete error shape to the consuming protocol's binding. For CIBA:

4. interaction_type on the Authorization Request

The base document defines the interaction_type ceremony vocabulary (boolean, number_choose, input_manual) and the discovery-level interaction_type_supported / minimum_interaction_type fields, but leaves per-request selection and content-carrying to the consuming protocol. For CIBA:

5. Scope Boundary

For the avoidance of doubt: discovery document shape and fields, registration flow (including the registration-token JWT, the PAR-pattern registration POST, and the push_device scope), key rotation (grace window, DPoP binding, replay nonce), device management (max_devices_per_user, atomic device replacement, primary-device selection), account recovery, push transport (opaque wake payload, mandatory JWE, signed downgrade reporting), and the trust/attestation model (registry BLOB format, root pinning, registry-list redundancy) are all defined solely by [I-D.bandyopadhayaya-oauth-push-device] and apply to a CIBA-binding AS exactly as written there. This document adds no new endpoints and no new discovery fields.

6. Security Considerations

This document inherits all security properties of [I-D.bandyopadhayaya-oauth-push-device] without modification; see that document's Security Considerations section.

The device_revoked error (Section 3) is purely additive to CIBA's error surface and introduces no new attack surface beyond what access_denied already exposes: it discloses only that a given device is revoked, which the party attempting /bc-authorize for that device already necessarily controls or has observed failing.

The interaction_type downgrade protection (Section 4) is the mechanism that specifically defends against MFA-fatigue/prompt-bombing attacks for CIBA-bound deployments; an AS that fails to enforce minimum_interaction_type reintroduces that exposure despite implementing the base document correctly.

7. IANA Considerations

This document defines no new discovery fields, endpoints, or well-known URIs; all IANA actions are performed by [I-D.bandyopadhayaya-oauth-push-device]. This document defines one new CIBA error code, device_revoked (Section 3), and one new CIBA authorization-request parameter, interaction_type (Section 4); if CIBA Core or a future revision thereof establishes an IANA registry for its error codes or request parameters, this document's values should be registered there.

8. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC6749]
Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, , <https://www.rfc-editor.org/rfc/rfc6749>.
[OIDC.CIBA]
Fernandez, G., Walter, F., Nennker, A., Tonge, D., and B. Campbell, "OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0", , <https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html>.
[I-D.bandyopadhayaya-oauth-push-device]
Bandyopadhayaya, J., "Discovery and Device Lifecycle for OAuth Push-Based Authentication", Work in Progress, Internet-Draft, draft-bandyopadhayaya-oauth-push-device-00, , <https://datatracker.ietf.org/doc/html/draft-bandyopadhayaya-oauth-push-device-00>.

9. Informative References

[WebAuthn2]
W3C, "Web Authentication: An API for accessing Public Key Credentials Level 2", , <https://www.w3.org/TR/webauthn-2/>.

Acknowledgments

This document's structure follows the companion-specification precedent of WebAuthn and CTAP, cited in Section 1.

Author's Address

Jyotirmoy Bandyopadhayaya
LoginRadius