POST /api/oidc/{app}/registerClosed DCR — mint a per-TV husk with software_id.
Load a live TV session_id to replay every partner → CIAM call for that set. Then compare the device token and the user token — isolation is sub, not a second tenant.
These are the LoginRadius APIs a BBC partner backend calls. The TV never sees them.
POST /api/oidc/{app}/registerClosed DCR — mint a per-TV husk with software_id.
POST /api/oidc/{app}/parPushed authorization request (scope=openid device).
POST /api/oidc/{app}/authorize/deviceIssue the device authorization code (Journey A).
POST /api/oidc/{app}/tokenauthorization_code → device access token.
POST /api/oidc/{app}/device/codeRFC 8628 user_code shown on the TV.
POST /api/oidc/{app}/token (device_code)Partner polls until the companion user approves.
GET /api/oidc/{app}/associationsUsers who consented on this husk.
Identity /identity/v2/auth/customobjectBBC AssociatedDevices mapping. Not a JWT claim.
POST /api/oidc/{app}/revokeStolen-TV kill of the device refresh token.
GET …/jwksbbc-api verifies the device AT locally. No CIAM RPS on home.