Skip to main content

Client entitlements

Resolves what a client may do — its grant types and granted resources — from the highest-precedence identity source that matches it.

  • Control id: client_entitlements
  • Shape: grant. The own row and every matching binding union.
  • Entry points: token, authorize
  • Phases: introspect

Policy data​

pbac.operator.controls.client_entitlements​

  • Role: operator
  • Written by: operator
  • Schema: src/main/resources/schemas/operator-client-entitlements.v1.json
SettingTypeDefault
client_id.<client_id>.grant_typesarray of stringnone in the schema
client_id.<client_id>.granted_resourcesarray of objectnone in the schema
software_id.<software_id>.grant_typesarray of stringnone in the schema
software_id.<software_id>.granted_resourcesarray of objectnone in the schema

Reads​

  • context.client.client_id
  • context.client.software_statement
  • context.client.software_statement.sub
  • context.client.registration_type
  • context.grant_type
  • resources
  • context.rs_context.interface
  • context.rs_context.resource_type
  • context.rs_context.scopes
  • context.token_granted_resources

Emits​

  • deny
  • reason
  • granted_resources

Reason codes​

CodeCategoryEntry pointSetting
grant_type_not_allowedcontroltokenpbac.operator.controls.client_entitlements#client_id.<client_id>.grant_types
grant_type_not_allowedcontrolauthorizepbac.operator.controls.client_entitlements#client_id.<client_id>.grant_types
interface_not_grantedcontrolintrospectpbac.operator.controls.client_entitlements#client_id.<client_id>.granted_resources[].interfaces

Implementation​

KindReferenceFilesRole
rego_packageoauth.client_entitlementsopa/policies/oauth/client_entitlements.regodecides