CreateOAuth2ClientRequest
in package
implements
JsonSerializable
The `CreateOAuth2ClientRequest` schema from the server's OpenAPI document.
Table of Contents
Interfaces
- JsonSerializable
Properties
- $allowedResources : array<string|int, mixed>|null
- $authnRequestParams : AuthnRequestParamsMode|null
- $backchannelAuthenticationRequestSigningAlg : string|null
- $backchannelClientNotificationEndpoint : string|null
- $backchannelLogoutUri : string|null
- $backchannelTokenDeliveryMode : string|null
- $backchannelUserCodeParameter : bool|null
- $browserSso : bool|null
- $dpopBoundAccessTokens : bool|null
- $dpopRequireNonce : bool|null
- $grantTypes : array<string|int, mixed>
- $jwks : string|null
- $jwksUri : string|null
- $name : string
- $postLogoutRedirectUris : array<string|int, mixed>|null
- $profile : ClientProfile|null
- $redirectUris : array<string|int, mixed>
- $requirePar : bool|null
- $scopes : array<string|int, mixed>
- $selfSignedTlsClientAuthThumbprints : array<string|int, mixed>|null
- $tlsClientAuthSanDns : string|null
- $tlsClientAuthSanUri : string|null
- $tlsClientAuthSubjectDn : string|null
- $tlsClientCertificateBoundAccessTokens : bool|null
- $tokenEndpointAuthMethod : ClientAuthMethod|null
Methods
- __construct() : mixed
- Constructs a CreateOAuth2ClientRequest.
- fromArray() : self
- Rebuilds a CreateOAuth2ClientRequest from one decoded JSON object.
- jsonSerialize() : array<string, mixed>
- Renders this object for `json_encode()`.
- toArray() : array<string, mixed>
- Renders this object back to its wire form.
- unknownEnumValue() : string|null
- The string the server sent for an open-enum member this SDK has no name for, or `null`.
Properties
$allowedResources read-only
public
array<string|int, mixed>|null
$allowedResources
= null
$authnRequestParams read-only
public
AuthnRequestParamsMode|null
$authnRequestParams
= null
$backchannelAuthenticationRequestSigningAlg read-only
public
string|null
$backchannelAuthenticationRequestSigningAlg
= null
$backchannelClientNotificationEndpoint read-only
public
string|null
$backchannelClientNotificationEndpoint
= null
$backchannelLogoutUri read-only
public
string|null
$backchannelLogoutUri
= null
$backchannelTokenDeliveryMode read-only
public
string|null
$backchannelTokenDeliveryMode
= null
$backchannelUserCodeParameter read-only
public
bool|null
$backchannelUserCodeParameter
= null
$browserSso read-only
public
bool|null
$browserSso
= null
$dpopBoundAccessTokens read-only
public
bool|null
$dpopBoundAccessTokens
= null
$dpopRequireNonce read-only
public
bool|null
$dpopRequireNonce
= null
$grantTypes read-only
public
array<string|int, mixed>
$grantTypes
$jwks read-only
public
string|null
$jwks
= null
$jwksUri read-only
public
string|null
$jwksUri
= null
$name read-only
public
string
$name
$postLogoutRedirectUris read-only
public
array<string|int, mixed>|null
$postLogoutRedirectUris
= null
$profile read-only
public
ClientProfile|null
$profile
= null
$redirectUris read-only
public
array<string|int, mixed>
$redirectUris
$requirePar read-only
public
bool|null
$requirePar
= null
$scopes read-only
public
array<string|int, mixed>
$scopes
$selfSignedTlsClientAuthThumbprints read-only
public
array<string|int, mixed>|null
$selfSignedTlsClientAuthThumbprints
= null
$tlsClientAuthSanDns read-only
public
string|null
$tlsClientAuthSanDns
= null
$tlsClientAuthSanUri read-only
public
string|null
$tlsClientAuthSanUri
= null
$tlsClientAuthSubjectDn read-only
public
string|null
$tlsClientAuthSubjectDn
= null
$tlsClientCertificateBoundAccessTokens read-only
public
bool|null
$tlsClientCertificateBoundAccessTokens
= null
$tokenEndpointAuthMethod read-only
public
ClientAuthMethod|null
$tokenEndpointAuthMethod
= null
Methods
__construct()
Constructs a CreateOAuth2ClientRequest.
public
__construct(array<int, string> $grantTypes, string $name, array<int, string> $redirectUris, array<int, string> $scopes[, array<int, string>|null $allowedResources = null ][, AuthnRequestParamsMode|null $authnRequestParams = null ][, string|null $backchannelAuthenticationRequestSigningAlg = null ][, string|null $backchannelClientNotificationEndpoint = null ][, string|null $backchannelLogoutUri = null ][, string|null $backchannelTokenDeliveryMode = null ][, bool|null $backchannelUserCodeParameter = null ][, bool|null $browserSso = null ][, bool|null $dpopBoundAccessTokens = null ][, bool|null $dpopRequireNonce = null ][, string|null $jwks = null ][, string|null $jwksUri = null ][, array<int, string>|null $postLogoutRedirectUris = null ][, ClientProfile|null $profile = null ][, bool|null $requirePar = null ][, array<int, string>|null $selfSignedTlsClientAuthThumbprints = null ][, string|null $tlsClientAuthSanDns = null ][, string|null $tlsClientAuthSanUri = null ][, string|null $tlsClientAuthSubjectDn = null ][, bool|null $tlsClientCertificateBoundAccessTokens = null ][, ClientAuthMethod|null $tokenEndpointAuthMethod = null ]) : mixed
Parameters
- $grantTypes : array<int, string>
-
Grant types this client is authorized to use.
- $name : string
-
Human-readable name for the client.
- $redirectUris : array<int, string>
-
Allowed redirect URIs (must be HTTPS, except localhost for dev). SEC-089 / T21.3: this list also authorises token-exchange audiences, and that coupling is now deprecated —
allowed_resourcesis the field that means "audiences this client may address". The redirect-URI branch survives one release so that no deployment's working exchange breaks on upgrade, and it logs a deprecation warning when it is the branch that matched. Register exchange targets inallowed_resources(seedocs/api/token-exchange.md#audience). - $scopes : array<int, string>
-
Scopes the client may request.
- $allowedResources : array<int, string>|null = null
-
T21.3 / RFC 8707 — the target services this client may name in a
resourceparameter, at/oauth2/authorize,/oauth2/par,/oauth2/device_authorizationand/oauth2/token. Each entry must be an absolute URI without a fragment (RFC 8707 §2). Entries are stored in their RFC 3986 §6.2.2 normalised form, which is what the read-back shows and what every comparison uses; matching is by equivalence and never by prefix. Empty (the default) means the client may name no resource, so every token it obtains carriesaxiam:useroraxiam:m2mexactly as before RFC 8707 support existed. This is also the list the RFC 8693 token exchange consults for itsaudience/resourcetarget. (optional) - $authnRequestParams : AuthnRequestParamsMode|null = null
-
X7.1 — whether this client's authorization requests may carry the OpenID Connect authentication-request parameters (
prompt,max_age,acr_values,claims,id_token_hint,login_hint,display,ui_locales,claims_locales)."ignore"(the default) is what every AXIAM client has always done: they are dropped and reach no decision."honour"opts in, and is refused on afapi2client* at both this gate and the authorization endpoint — the two are different answers to the same question about what a request from this client means. (optional) - $backchannelAuthenticationRequestSigningAlg : string|null = null
-
G-7 — CIBA Core §4:
PS256,ES256orEdDSA. When set, every backchannel authentication request must be a signedrequestJWT under this algorithm, verified againstjwksorjwks_uri(exactly one is required; an inlinejwksmust hold a key of the algorithm). Required for afapi2client holding the CIBA grant. (optional) - $backchannelClientNotificationEndpoint : string|null = null
-
G-7 — CIBA Core §4: where a ping-mode client is notified. Required in ping mode and refused in poll mode; an absolute
httpsURL held to the webhook address policy (no credentials, no fragment, no private, loopback or internal host). (optional) - $backchannelLogoutUri : string|null = null
-
B5 — where OIDC back-channel logout tokens are delivered. Omit for a client that does not participate. Must be an absolute
httpsURL with no credentials and no fragment, naming a public host: an IP literal that is loopback, private, link-local or the cloud metadata address, and the nameslocalhost,*.localhost,*.localand*.internal, are refused with400. Delivery is one request that does not follow redirects, and a name that resolves to a non-public address is refused when it is sent. (optional) - $backchannelTokenDeliveryMode : string|null = null
-
G-7 — CIBA Core §4
backchannel_token_delivery_mode:pollorping. Required whengrant_typesholdsurn:openid:params:grant-type:ciba, refused otherwise;pushis not offered. A CIBA client must be confidential; afapi2one must also registerbackchannel_authentication_request_signing_alg. (optional) - $backchannelUserCodeParameter : bool|null = null
-
G-7 — CIBA Core §4.
trueis refused*: this server holds no user code to verify. (optional) - $browserSso : bool|null = null
-
X7.3 — whether an unauthenticated authorization request from this client may be answered with a redirect to the login page rather than the
401AXIAM answers today. Accepted and stored, but nothing reads it yet: the login hop it gates is a later wave. Unlikeauthn_request_paramsit is permitted on afapi2client, because it relaxes nothing — it decides only how an anonymous browser is answered. (optional) - $dpopBoundAccessTokens : bool|null = null
-
RFC 9449 §5.2 — issue DPoP-bound (sender-constrained) access tokens to this client. Independent of both the authentication method and
tls_client_certificate_bound_access_tokens; a client may ask for both constraints, and a token carrying both must satisfy both. (optional) - $dpopRequireNonce : bool|null = null
-
RFC 9449 §8 — require this client's DPoP proofs to carry a server-issued nonce. Not implemented in this build (SEC-097).
trueis refused with400; onlyfalse(the default) is accepted. Nothing reads the stored value, so acceptingtruewould persist and echo back a security switch that does nothing. DPoP proofs are made single-use at the token endpoint byjtireplay detection instead — seedocs/security-profiles.md. (optional) - $jwks : string|null = null
-
RFC 7591 §2 — the client's public key set, inline, for
private_key_jwt. Exactly one ofjwksandjwks_urimay be set. (optional) - $jwksUri : string|null = null
-
RFC 7591 §2 — where the client publishes its public key set. Must be an absolute
httpsURL, and is fetched through the SSRF-guarded JWKS cache, which refuses private and loopback addresses. (optional) - $postLogoutRedirectUris : array<int, string>|null = null
-
B5 — allow-list for RP-initiated logout's
post_logout_redirect_uri. Separate fromredirect_urison purpose: that list receives authorization codes, this one receives a browser after logout. (optional) - $profile : ClientProfile|null = null
-
X5.1 — the security posture this client is registered under.
"standard"(the default) is every AXIAM client that has ever existed."fapi2"turns on the whole FAPI 2.0 constraint bundle at once, and the registration is refused unless it also setsrequire_par, a strongtoken_endpoint_auth_method(either mTLS method orprivate_key_jwt), and at least one sender-constraining mechanism (tls_client_certificate_bound_access_tokensordpop_bound_access_tokens). See the FAPI operator guide. (optional) - $requirePar : bool|null = null
-
B5 — require this client to push its authorization parameters to
/oauth2/par(RFC 9126) rather than sending them through the browser. (optional) - $selfSignedTlsClientAuthThumbprints : array<int, string>|null = null
-
Accepted certificate thumbprints for
self_signed_tls_client_auth, as base64url-unpadded SHA-256 digests of the DER certificate (the samex5t#S256encoding as thecnfclaim). More than one permits an overlapping rotation. (optional) - $tlsClientAuthSanDns : string|null = null
-
RFC 8705 §2.1.2 — expected
dNSNameSAN. (optional) - $tlsClientAuthSanUri : string|null = null
-
RFC 8705 §2.1.2 — expected
uniformResourceIdentifierSAN. (optional) - $tlsClientAuthSubjectDn : string|null = null
-
RFC 8705 §2.1.2 — expected certificate subject DN, RFC 4514 form. Exactly one of the three
tls_client_auth_*parameters may be set. (optional) - $tlsClientCertificateBoundAccessTokens : bool|null = null
-
RFC 8705 §3.4 — issue certificate-bound (sender-constrained) access tokens to this client. Independent of the authentication method. (optional)
- $tokenEndpointAuthMethod : ClientAuthMethod|null = null
-
X5.1 — how this client authenticates at the token endpoint (RFC 8705 §2). Defaults to
client_secret_post. (optional)
fromArray()
Rebuilds a CreateOAuth2ClientRequest from one decoded JSON object.
public
static fromArray(array<string, mixed> $data) : self
Parameters
- $data : array<string, mixed>
-
The raw wire object.
Return values
selfjsonSerialize()
Renders this object for `json_encode()`.
public
jsonSerialize() : array<string, mixed>
Any Sensitive it carries stays WRAPPED here, so a log line or a
json_encode($model) in application code prints [SENSITIVE]. The one place a secret
is revealed is ManagementTransport, on the way to the wire
and nowhere else (§27.5).
Rendering for a log line never fails: an unknown union arm renders its discriminator and
an unrecognised enum value its empty Unknown spelling here, and only self::toArray() -- the request path -- refuses to send it (CONTRACT.md §31.2, §34.2
P12.2).
Return values
array<string, mixed>toArray()
Renders this object back to its wire form.
public
toArray() : array<string, mixed>
§27.4 rule 5: a null property is OMITTED, not emitted as null. On a sparse update those two say opposite things — "leave this alone" versus "set this to nothing" — and only omission means the first.
Return values
array<string, mixed>unknownEnumValue()
The string the server sent for an open-enum member this SDK has no name for, or `null`.
public
unknownEnumValue(string $wire) : string|null
Only a model decoded by self::fromArray() knows it, and only for a member that
decoded to Unknown (CONTRACT.md §27.6.2 item 4, §34.8 (c)): it lets a refusal name the
value. It is for messages -- it is never rendered by self::toArray() or self::jsonSerialize() and so is never sent.
Parameters
- $wire : string
-
The member's wire name.