Provide the client identity and profile
Registration assigns a server-generated client identifier and an operator-verified unique display name. Consent and account pages show the verified name so a resource owner never has to trust a raw identifier. Choose one profile and supply its required values:
Public clients have no shared secret. Confidential client assertions may use only
ES256 or PS256.
Register exact redirect URIs
Web and browser redirect URIs must use Hypertext Transfer Protocol Secure (HTTPS) and match the registered value exactly. They cannot contain a fragment, wildcard host, wildcard path, user information, or trailing-dot ambiguity. Native loopback redirects have one narrow exception. Register a Hypertext Transfer Protocol (HTTP) URI on literal127.0.0.1 or [::1] with an exact path and no query or fragment. Perflo then accepts any ephemeral port on the same literal address family and path.
Do not use localhost, switch between IPv4 and IPv6, vary the path, or register a loopback redirect for a browser client.
Register browser origins separately
An allowed browser origin contains onlyhttps://host[:port]. Local development may use HTTP on a literal loopback host.
Origins cannot contain:
- A path, query, fragment, or user information
- A wildcard or regular expression
- A trailing-dot hostname
- The opaque
nullorigin
Supply assertion keys for confidential clients
Prefer an inline JSON Web Key Set (JWKS). Each key needs a nonemptykid and metadata compatible with its allowed assertion algorithm. When a set repeats a kid, Perflo filters candidates by the assertion algorithm, use, key operations, key type, and curve, then requires exactly one compatible verification key.
A remote jwks_uri must use HTTPS on an approved public host and port 443. Perflo rejects redirects, private or loopback addresses, ambiguous keys, and key sets over 256 KiB or 20 keys.
Client assertions must contain:
issandsubequal to the registeredclient_idaudequal to the environment issuer as one stringiat, a uniquejti, andexpno more than five minutes afteriat- Optional
nbfthat is valid at verification time
Set the grant and scope ceiling
Register only the grants and scopes that the client needs. Consent can narrow this ceiling but cannot expand it. Mutation scopes require individual approval for a public client:cards:managebeneficiaries:writespending:withdraw
purchases:execute is unavailable. Perflo does not register or grant it in this release.
Register openid only for authorization-code clients. Register offline_access only for authorization-code or device clients. Client credentials cannot request either scope.