OidcConfiguration
in package
The OIDC Discovery 1.0 metadata document served by `GET /.well-known/openid-configuration` (wire schema `OidcDiscoveryDocument`, CONTRACT.md §12.1).
This models a curated subset of the document, and the optionality here is the SDK's, not the schema's. AXIAM's own schema marks nearly every member required; this type marks a member required only where a missing value would leave the SDK with nothing to do but guess a URL — so the endpoints §12.7.2 rule 1 forbids synthesising are nullable, and so are the capability lists RFC 8414 §2 defines no default for. A document from a non-AXIAM OP has to parse.
Field names deliberately keep the wire's snake_case spelling rather than PHP's usual camelCase (contract 1.4 port-brief judgment call 3): this type IS a protocol document, and a caller cross-references these names against OIDC Discovery 1.0 / RFC 8414.
issuer is the authoritative issuer for ID-token validation (§12.4 rule 3). It may
legitimately differ from the client's base URL when AXIAM runs behind a proxy, so this
SDK never rejects a document on an issuer/base-URL mismatch (§12.3 rule 6). Likewise
jwks_uri is read from here rather than hardcoded.
Table of Contents
Properties
- $authorization_endpoint : string
- $backchannel_authentication_endpoint : string|null
- $backchannel_authentication_request_signing_alg_values_supported : array<string|int, mixed>|null
- $backchannel_logout_session_supported : bool
- $backchannel_logout_supported : bool
- $backchannel_token_delivery_modes_supported : array<string|int, mixed>|null
- $backchannel_user_code_parameter_supported : bool|null
- $claims_supported : array<string|int, mixed>
- $code_challenge_methods_supported : array<string|int, mixed>|null
- $device_authorization_endpoint : string|null
- $end_session_endpoint : string|null
- $grant_types_supported : array<string|int, mixed>
- $id_token_signing_alg_values_supported : array<string|int, mixed>
- $introspection_endpoint : string
- $introspection_endpoint_auth_methods_supported : array<string|int, mixed>|null
- $introspection_endpoint_auth_signing_alg_values_supported : array<string|int, mixed>|null
- $issuer : string
- $jwks_uri : string
- $mtls_endpoint_aliases : MtlsEndpointAliases|null
- $pushed_authorization_request_endpoint : string|null
- $response_types_supported : array<string|int, mixed>
- $revocation_endpoint : string
- $revocation_endpoint_auth_methods_supported : array<string|int, mixed>|null
- $revocation_endpoint_auth_signing_alg_values_supported : array<string|int, mixed>|null
- $scopes_supported : array<string|int, mixed>
- $subject_types_supported : array<string|int, mixed>
- $token_endpoint : string
- $token_endpoint_auth_methods_supported : array<string|int, mixed>
- $token_endpoint_auth_signing_alg_values_supported : array<string|int, mixed>|null
- $userinfo_endpoint : string
Methods
- __construct() : mixed
- fromWire() : self
- Build a {@see OidcConfiguration} from the decoded `GET /.well-known/openid-configuration` JSON body, raising {@see NetworkError} on a malformed document (missing/mistyped required field) rather than letting a confusing `TypeError` escape from the constructor.
Properties
$authorization_endpoint read-only
public
string
$authorization_endpoint
$backchannel_authentication_endpoint read-only
public
string|null
$backchannel_authentication_endpoint
= null
$backchannel_authentication_request_signing_alg_values_supported read-only
public
array<string|int, mixed>|null
$backchannel_authentication_request_signing_alg_values_supported
= null
$backchannel_logout_session_supported read-only
public
bool
$backchannel_logout_session_supported
= false
$backchannel_logout_supported read-only
public
bool
$backchannel_logout_supported
= false
$backchannel_token_delivery_modes_supported read-only
public
array<string|int, mixed>|null
$backchannel_token_delivery_modes_supported
= null
$backchannel_user_code_parameter_supported read-only
public
bool|null
$backchannel_user_code_parameter_supported
= null
$claims_supported read-only
public
array<string|int, mixed>
$claims_supported
$code_challenge_methods_supported read-only
public
array<string|int, mixed>|null
$code_challenge_methods_supported
= null
$device_authorization_endpoint read-only
public
string|null
$device_authorization_endpoint
= null
$end_session_endpoint read-only
public
string|null
$end_session_endpoint
= null
$grant_types_supported read-only
public
array<string|int, mixed>
$grant_types_supported
$id_token_signing_alg_values_supported read-only
public
array<string|int, mixed>
$id_token_signing_alg_values_supported
$introspection_endpoint read-only
public
string
$introspection_endpoint
$introspection_endpoint_auth_methods_supported read-only
public
array<string|int, mixed>|null
$introspection_endpoint_auth_methods_supported
= null
$introspection_endpoint_auth_signing_alg_values_supported read-only
public
array<string|int, mixed>|null
$introspection_endpoint_auth_signing_alg_values_supported
= null
$issuer read-only
public
string
$issuer
$jwks_uri read-only
public
string
$jwks_uri
$mtls_endpoint_aliases read-only
public
MtlsEndpointAliases|null
$mtls_endpoint_aliases
= null
$pushed_authorization_request_endpoint read-only
public
string|null
$pushed_authorization_request_endpoint
= null
$response_types_supported read-only
public
array<string|int, mixed>
$response_types_supported
$revocation_endpoint read-only
public
string
$revocation_endpoint
$revocation_endpoint_auth_methods_supported read-only
public
array<string|int, mixed>|null
$revocation_endpoint_auth_methods_supported
= null
$revocation_endpoint_auth_signing_alg_values_supported read-only
public
array<string|int, mixed>|null
$revocation_endpoint_auth_signing_alg_values_supported
= null
$scopes_supported read-only
public
array<string|int, mixed>
$scopes_supported
$subject_types_supported read-only
public
array<string|int, mixed>
$subject_types_supported
$token_endpoint read-only
public
string
$token_endpoint
$token_endpoint_auth_methods_supported read-only
public
array<string|int, mixed>
$token_endpoint_auth_methods_supported
$token_endpoint_auth_signing_alg_values_supported read-only
public
array<string|int, mixed>|null
$token_endpoint_auth_signing_alg_values_supported
= null
$userinfo_endpoint read-only
public
string
$userinfo_endpoint
Methods
__construct()
public
__construct(string $issuer, string $authorization_endpoint, string $token_endpoint, string $userinfo_endpoint, string $jwks_uri, string $revocation_endpoint, string $introspection_endpoint, array<int, string> $response_types_supported, array<int, string> $subject_types_supported, array<int, string> $id_token_signing_alg_values_supported, array<int, string> $scopes_supported, array<int, string> $token_endpoint_auth_methods_supported, array<int, string> $claims_supported, array<int, string> $grant_types_supported[, string|null $device_authorization_endpoint = null ][, string|null $pushed_authorization_request_endpoint = null ][, string|null $end_session_endpoint = null ][, bool $backchannel_logout_supported = false ][, bool $backchannel_logout_session_supported = false ][, MtlsEndpointAliases|null $mtls_endpoint_aliases = null ][, array<int, string>|null $code_challenge_methods_supported = null ][, array<int, string>|null $token_endpoint_auth_signing_alg_values_supported = null ][, string|null $backchannel_authentication_endpoint = null ][, array<int, string>|null $backchannel_token_delivery_modes_supported = null ][, bool|null $backchannel_user_code_parameter_supported = null ][, array<int, string>|null $backchannel_authentication_request_signing_alg_values_supported = null ][, array<int, string>|null $revocation_endpoint_auth_methods_supported = null ][, array<int, string>|null $introspection_endpoint_auth_methods_supported = null ][, array<int, string>|null $revocation_endpoint_auth_signing_alg_values_supported = null ][, array<int, string>|null $introspection_endpoint_auth_signing_alg_values_supported = null ]) : mixed
Parameters
- $issuer : string
-
The authorization server's issuer identifier — the value an ID token's
issclaim must equal exactly. - $authorization_endpoint : string
-
The authorization endpoint
oidcBeginbuilds its redirect URL from. - $token_endpoint : string
-
The token endpoint used by
oidcExchange,oidcRefreshandloginClientCredentials. - $userinfo_endpoint : string
-
The userinfo endpoint. Advertised by the server but deliberately NOT called by this SDK (§12.3 rule 5).
- $jwks_uri : string
-
URI of the JWKS document whose keys verify ID-token signatures (§12.4 rule 2).
- $revocation_endpoint : string
-
The RFC 7009 revocation endpoint used by
revoke. - $introspection_endpoint : string
-
The RFC 7662 introspection endpoint used by
introspect. - $response_types_supported : array<int, string>
-
OAuth2
response_typevalues the server supports. - $subject_types_supported : array<int, string>
-
Subject identifier types the server supports.
- $id_token_signing_alg_values_supported : array<int, string>
-
ID-token signing algorithms the server advertises. Informational only: §12.4 rule 1 pins verification to
EdDSAregardless of what appears here. - $scopes_supported : array<int, string>
-
Scopes the server supports.
- $token_endpoint_auth_methods_supported : array<int, string>
-
Client-authentication methods the token endpoint supports (
client_secret_post, §12.1 note 3). - $claims_supported : array<int, string>
-
Claims the server may include in an ID token.
- $grant_types_supported : array<int, string>
-
Grant types the token endpoint supports.
- $device_authorization_endpoint : string|null = null
-
RFC 8628 device authorization endpoint, used by
deviceAuthorize(§14.1).nullwhen the server does not implement the device grant, or when the document came from a non-AXIAM OP — its absence is an error at call time, never a cue to build the URL by concatenation. - $pushed_authorization_request_endpoint : string|null = null
-
RFC 9126 pushed authorization request endpoint, used by
oidcPar(§26.1).nullwhen the server does not implement PAR — its absence is an error at call time, never a cue to build the URL by concatenation, and for a FAPI 2.0 client it is fatal rather than a fallback since §21.1 refuses afapi2registration that does not setrequire_par. - $end_session_endpoint : string|null = null
-
OIDC RP-Initiated Logout 1.0 endpoint, used by
logoutUrl(§12.7.2 rule 1).nullfor the same reason, and the rule is stricter here: §12.7.2 rule 1 forbids synthesising this URL from the issuer. - $backchannel_logout_supported : bool = false
-
Whether the OP sends back-channel logout tokens.
- $backchannel_logout_session_supported : bool = false
-
Whether those logout tokens carry
sid. AXIAM always sends it. - $mtls_endpoint_aliases : MtlsEndpointAliases|null = null
-
RFC 8705 §5 endpoint aliases for a deployment that terminates mutual TLS on a host other than the issuer's own (contract 1.40, §21.3 rule 2).
nullmeans "no separate host", not "mTLS unsupported": a deployment runningclient_auth = optionalon one listener serves both populations at the conventional endpoints and correctly publishes nothing here, so a client treating absence as an error would refuse the most common mTLS topology AXIAM ships. - $code_challenge_methods_supported : array<int, string>|null = null
-
PKCE code-challenge methods the server supports (RFC 8414 §2 / RFC 7636 §4.3; AXIAM advertises
["S256"]as of contract 1.42). Modelled optional even though the AXIAM schema marks it required: RFC 8414 defines no default for this member, so its absence does not meanS256(CONTRACT.md §21.5) — it means a conforming client cannot establish that PKCE is available at all, and a discovery document from a non-AXIAM OP that omits it must still parse rather than be rejected. - $token_endpoint_auth_signing_alg_values_supported : array<int, string>|null = null
-
JWS algorithms the token endpoint accepts on a
private_key_jwtclient assertion (RFC 8414 §2; AXIAM advertises["PS256", "ES256", "EdDSA"]as of contract 1.42). Optional for the same reason as the member above, and informational either way: §12.1 note 3 pins this SDK toclient_secret_post, so it never signs a client assertion. - $backchannel_authentication_endpoint : string|null = null
-
CIBA Core §4 / CONTRACT.md §33.1 (contract 1.58): the endpoint
cibaInitiateposts to.nullwhen the server does not offer CIBA — an error at call time, never a cue to build the URL. - $backchannel_token_delivery_modes_supported : array<int, string>|null = null
-
The CIBA delivery modes the SERVER offers (AXIAM:
["poll", "ping"]). A statement about the server, not about any client's registration. - $backchannel_user_code_parameter_supported : bool|null = null
-
Whether the server accepts a CIBA
user_code(AXIAM:false; this SDK never sends one). - $backchannel_authentication_request_signing_alg_values_supported : array<int, string>|null = null
-
The algorithms a signed CIBA request may use (AXIAM:
["PS256", "ES256", "EdDSA"]). - $revocation_endpoint_auth_methods_supported : array<int, string>|null = null
-
Client-authentication methods the revocation endpoint accepts (RFC 8414 §2; contract 1.60, §21.5). Optional: a server before 1.0.0 omits it. Informational —
revokekeeps authenticating with the method this client was configured with either way. - $introspection_endpoint_auth_methods_supported : array<int, string>|null = null
-
Client-authentication methods the introspection endpoint accepts (contract 1.60, §21.5): the token endpoint's list without
none, since introspection refuses a public client. Optional, informational. - $revocation_endpoint_auth_signing_alg_values_supported : array<int, string>|null = null
-
JWS algorithms the revocation endpoint accepts on a client assertion (contract 1.60, §21.5). Optional, informational.
- $introspection_endpoint_auth_signing_alg_values_supported : array<int, string>|null = null
-
JWS algorithms the introspection endpoint accepts on a client assertion (contract 1.60, §21.5). Optional, informational.
fromWire()
Build a {@see OidcConfiguration} from the decoded `GET /.well-known/openid-configuration` JSON body, raising {@see NetworkError} on a malformed document (missing/mistyped required field) rather than letting a confusing `TypeError` escape from the constructor.
public
static fromWire(ResponseInterface $response) : self
Parameters
- $response : ResponseInterface