Skip to main content

PKCE requirement

Requires a PKCE code challenge at /authorize — for every client, for public clients only, or for a named list.

  • Control id: pkce
  • Shape: floor. An OR across the own row and every matching binding.
  • Entry points: authorize

Policy data​

pbac.operator.controls.pkce​

  • Role: operator
  • Written by: operator
  • Schema: src/main/resources/schemas/operator-pkce.v1.json
SettingTypeDefault
require_pkcebooleannone in the schema
require_pkce_for_publicbooleannone in the schema
require_pkce_for_clientsarray of stringnone in the schema

Reads​

  • context.client.client_id
  • context.client.client_type
  • context.authorize.code_challenge_present

Emits​

  • deny
  • reason

Reason codes​

CodeCategoryEntry pointSetting
pkce_requiredcontrolauthorizepbac.operator.controls.pkce#require_pkce

Implementation​

KindReferenceFilesRole
rego_packageoauth.pkceopa/policies/oauth/pkce.regodecides