#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')

## Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement Namespace

| Classes | |
| :--- | :--- |
| [ClientCredentialFactory](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.ClientCredentialFactory 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.ClientCredentialFactory') | Coordinates credential generation by composing ID generation, secret generation, hashing, and expiration calculation\. Uses SHA\-512 for strong cryptographic hashing while maintaining configurable secret length and expiration policies\. |
| [ClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.ClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.ClientRequestValidator') | Default [IClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IClientRequestValidator') for the RFC 7592 client configuration endpoint\. First verifies the registration access token is bound to the requested `client_id`, then loads the corresponding [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') from storage and rejects the request when no record exists\. |
| [InitialAccessTokenRevocationProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.InitialAccessTokenRevocationProvider 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.InitialAccessTokenRevocationProvider') | Default implementation that checks revocation against [RevokedInitialAccessTokenSubjects](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.RevokedInitialAccessTokenSubjects 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.RevokedInitialAccessTokenSubjects')\. For production use with large or dynamic revocation lists, replace with a database\- or cache\-backed implementation\. |
| [InitialAccessTokenService](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.InitialAccessTokenService 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.InitialAccessTokenService') | Issues initial access tokens for authorizing client registration per RFC 7591 Section 3\. |
| [ReadClientHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.ReadClientHandler 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.ReadClientHandler') | Handles client configuration retrieval requests in OAuth 2\.0 Dynamic Client Registration protocol\. Coordinates validation and processing to securely fetch registered client information\. |
| [ReadClientRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.ReadClientRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.ReadClientRequestProcessor') | Builds the RFC 7592 §2\.1 read\-client response from stored client metadata\. The `client_secret` is intentionally omitted because secrets are persisted only as hashes; a registration access token bearing the client's current jti is re\-issued so the client can keep using the management endpoint after the read, without invalidating the token it presented \(read stays idempotent — only update rotates the jti\)\. |
| [RegisterClientHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegisterClientHandler 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegisterClientHandler') | Default implementation of [IRegisterClientHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegisterClientHandler 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegisterClientHandler') that runs validation \(RFC 7591 §2 metadata \+ OIDC DCR 1\.0\) followed by processing \(credential issuance, persistence, and registration access token generation per RFC 7591 §3\.2\.1 / RFC 7592 §3\)\. |
| [RegisterClientRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegisterClientRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegisterClientRequestProcessor') | Handles the registration of new clients by generating the necessary credentials and adding client information to the system\. Ensures the secure and compliant registration of clients as per OAuth 2\.0 and OpenID Connect standards\. |
| [RegisterClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegisterClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegisterClientRequestValidator') | Default validator for new\-client registration \(POST\), wrapping the request in a [ClientRegistrationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.ClientRegistrationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Validation\.ClientRegistrationValidationContext') with [Register](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.DynamicClientOperation#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.DynamicClientOperation.Register 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Validation\.DynamicClientOperation\.Register') and delegating to the configured [IClientRegistrationContextValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.IClientRegistrationContextValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Validation\.IClientRegistrationContextValidator') pipeline\. |
| [RegistrationAccessTokenService](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenService 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegistrationAccessTokenService') | Issues registration access tokens for managing registered clients per RFC 7592 Section 3\. |
| [RegistrationAccessTokenStore](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenStore 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegistrationAccessTokenStore') | Default [IRegistrationAccessTokenStore](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenStore 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegistrationAccessTokenStore') backed by the distributed [IEntityStorage](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.IEntityStorage 'Abblix\.Oidc\.Server\.Features\.Storages\.IEntityStorage'), so the client\-to\-token\-jti binding is shared across all server replicas\. The entry is stored without expiration — it lives as long as the client is registered — and is removed when the client is deregistered\. |
| [RegistrationAccessTokenValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegistrationAccessTokenValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegistrationAccessTokenValidator') | Default implementation of [IRegistrationAccessTokenValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegistrationAccessTokenValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegistrationAccessTokenValidator')\. Requires a `Bearer` scheme, validates the JWT signature and lifetime via [IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator'), then enforces that the token's `typ` is `registration_access_token` and that its `sub` and `aud` both equal the requested `client_id`\. |
| [RemoveClientHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RemoveClientHandler 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RemoveClientHandler') | Default implementation of [IRemoveClientHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRemoveClientHandler 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRemoveClientHandler') that authenticates the registration access token via [IClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IClientRequestValidator') and, on success, delegates to the processor to delete the client per RFC 7592 §2\.3\. |
| [RemoveClientRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RemoveClientRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RemoveClientRequestProcessor') | Performs the storage\-level deregistration of a client through the configured [IClientInfoManager](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientInfoManager') per RFC 7592 §2\.3\. |
| [UpdateClientHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientHandler 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.UpdateClientHandler') | Handles client configuration update requests in OAuth 2\.0 Dynamic Client Registration Management protocol per RFC 7592\. Coordinates validation and processing to securely update registered client information\. |
| [UpdateClientRegistrationValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientRegistrationValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.UpdateClientRegistrationValidator') | Variant of [RegisterClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.RegisterClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.RegisterClientRequestValidator') used by the RFC 7592 §2\.2 update flow\. Wraps the request in a [ClientRegistrationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.ClientRegistrationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Validation\.ClientRegistrationValidationContext') with [Update](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.DynamicClientOperation#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Validation.DynamicClientOperation.Update 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Validation\.DynamicClientOperation\.Update') so steps such as `ClientIdValidator` require the client to already exist instead of forbidding it\. |
| [UpdateClientRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.UpdateClientRequestProcessor') | Processes requests to update existing client configurations per RFC 7592 Section 2\.2\. Updates client metadata while preserving credentials and system\-managed fields\. |
| [UpdateClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.UpdateClientRequestValidator') | Validates an RFC 7592 §2\.2 update request: authenticates the registration access token and confirms the client exists, then validates the supplied replacement metadata via the update\-specific keyed [IRegisterClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IRegisterClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IRegisterClientRequestValidator')\. Also enforces the RFC 7592 §2\.2 rule that the request body's `client_id` must match the authenticated client\. |
