Skip to content

Client Authorization

SympAuthy controls what operations a client application itself can perform through client scopes, granted during client_credentials flows. Unlike user authorization, there is no end-user involved — the client authenticates as itself and receives tokens reflecting its own capabilities.

Client scopes

Client scopes are granted by the authorization server through scope granting rules or by delegating to a third-party through API.

Scope granting rules

Scope granting rules for client scopes follow the same structure as user authorization rules — with scopes, behavior, order, and expressions — but their expressions evaluate client attributes instead of user claims.

They are declared in the Configuration under rules.client of the authorization server and look like the following:

- scopes:
    - users:claims:write
  behavior: grant
  order: 0
  expressions:
    - CLIENT("name") = "backoffice"

The scopes, behavior, and order fields work identically to user authorization rules. See User Authorization — Scope granting rules for a detailed description of these fields.

The key difference is in the expressions: instead of evaluating user claims with CLAIM(...), client scope rules evaluate client attributes with CLIENT(...).

There are no client scope granting rules defined in the out-of-the-box configuration.

Delegating to a third-party through API

Scopes granted directly by the API overwrite any scope granting rules.