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

## ClientInfo Class

Contains information about a client in an OAuth2/OpenID Connect context\.

```csharp
public record ClientInfo : System.IEquatable<Abblix.Oidc.Server.Features.ClientInformation.ClientInfo>
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → ClientInfo

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')

### Remarks
This record encapsulates the details necessary to identify and configure the behavior of a client application
within an OAuth2 or OpenID Connect framework\. It includes identifiers, secrets, and configuration options
that dictate how the client interacts with the authorization server and is authenticated or authorized during
the token issuance process\.
### Constructors

## ClientInfo\(string\) Constructor {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientInfo(string)}

Contains information about a client in an OAuth2/OpenID Connect context\.

```csharp
public ClientInfo(string ClientId);
```
#### Parameters

###### `ClientId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientInfo(string).ClientId}

### Remarks
This record encapsulates the details necessary to identify and configure the behavior of a client application
within an OAuth2 or OpenID Connect framework\. It includes identifiers, secrets, and configuration options
that dictate how the client interacts with the authorization server and is authenticated or authorized during
the token issuance process\.
### Properties

## ClientInfo\.AccessTokenExpiresIn Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AccessTokenExpiresIn}

Specifies the lifetime of access tokens issued to this client\.
Shorter access token lifetimes reduce the risk of token leakage\.

```csharp
public System.TimeSpan AccessTokenExpiresIn { get; set; }
```

#### Property Value
[System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan')

## ClientInfo\.AllowCrossClientSubjectTokenExchange Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AllowCrossClientSubjectTokenExchange}

RFC 8693 §1\.3: by default this AS rejects a Token Exchange request where the
`subject_token` was originally issued to a different client than the one presenting
it \-\- the "confused deputy" anti\-pattern\. When this client is intended to operate as an
audit broker / proxy that legitimately receives tokens issued to other clients, set this
to `true` to opt out of the default check\. Has no effect when no subject\_token
origin can be determined\.

```csharp
public bool AllowCrossClientSubjectTokenExchange { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.AllowedGrantTypes Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AllowedGrantTypes}

Specifies the grant types the client is authorized to use when obtaining tokens from the token endpoint\.

```csharp
public string[] AllowedGrantTypes { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.AllowedResponseTypes Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AllowedResponseTypes}

Defines the response types that the client is permitted to use\.
This controls how tokens are issued in response to an authorization request\.

```csharp
public string[][] AllowedResponseTypes { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.AllowedScopes Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AllowedScopes}

The scope values the client is allowed to request per RFC 7591 Section 2\.

```csharp
public string[]? AllowedScopes { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.ApplicationType Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ApplicationType}

Describes the type of application represented by the client, such as "web" or "native"\.

```csharp
public string ApplicationType { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.AuthorizationCodeExpiresIn Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationCodeExpiresIn}

The validity period of an authorization code issued to this client\.
Shorter durations are recommended for higher security\.

```csharp
public System.TimeSpan AuthorizationCodeExpiresIn { get; set; }
```

#### Property Value
[System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan')

## ClientInfo\.AuthorizationDetailsTypes Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationDetailsTypes}

RFC 9396 §5\.1: the client's per\-client allowlist of authorization\-detail `type`
values it may use in `authorization_details` requests\. DCR\-exposed
\(`authorization_details_types`\)\. Semantics:
- `null` — no per-client constraint; the client may use any
              `type` the server understands.
- Empty array — the client cannot use RAR; every
              `authorization_details` entry is rejected at request time regardless of
              `type`.
- Non-empty array — only the listed `type` values are accepted
              for this client; entries with other types are rejected with
              `invalid_authorization_details`.

```csharp
public string[]? AuthorizationDetailsTypes { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.AuthorizationEncryptedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationEncryptedResponseAlgorithm}

JARM \(`authorization_encrypted_response_alg`\): the JWE key\-management algorithm used to encrypt
authorization responses for this client\. When set, the signed response JWT is additionally encrypted
\(a Nested JWT\)\. `null` means no encryption is performed\.

```csharp
public string? AuthorizationEncryptedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.AuthorizationEncryptedResponseEncryption Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationEncryptedResponseEncryption}

JARM \(`authorization_encrypted_response_enc`\): the JWE content\-encryption algorithm used to encrypt
authorization responses for this client\. Only meaningful when
[AuthorizationEncryptedResponseAlgorithm](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationEncryptedResponseAlgorithm 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.AuthorizationEncryptedResponseAlgorithm') is set\.

```csharp
public string? AuthorizationEncryptedResponseEncryption { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.AuthorizationSignedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationSignedResponseAlgorithm}

JARM \(`authorization_signed_response_alg`\): the JWS algorithm used to sign authorization responses
packed into a JWT for this client\. Defaults to [RS256](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.SigningAlgorithms#Abblix.Jwt.SigningAlgorithms.RS256 'Abblix\.Jwt\.SigningAlgorithms\.RS256') per JARM §3; the
algorithm `none` is not permitted\. Only consulted when the client requests a JWT response mode\.

```csharp
public string AuthorizationSignedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.BackChannelAuthenticationRequestSigningAlg Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.BackChannelAuthenticationRequestSigningAlg}

The signing algorithm used for backchannel authentication requests sent to this client\.

```csharp
public string? BackChannelAuthenticationRequestSigningAlg { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.BackChannelClientNotificationEndpoint Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.BackChannelClientNotificationEndpoint}

The endpoint where backchannel client notifications are sent for this client\.

```csharp
public System.Uri? BackChannelClientNotificationEndpoint { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.BackChannelLogout Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.BackChannelLogout}

Options for configuring back\-channel logout behavior, enabling the server to directly notify
the client of logout events\.

```csharp
public Abblix.Oidc.Server.Common.Configuration.BackChannelLogoutOptions? BackChannelLogout { get; set; }
```

#### Property Value
[BackChannelLogoutOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.BackChannelLogoutOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.BackChannelLogoutOptions')

## ClientInfo\.BackChannelTokenDeliveryMode Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.BackChannelTokenDeliveryMode}

The backchannel token delivery mode to be used by this client\. This determines how tokens are delivered
during backchannel authentication\.

```csharp
public string? BackChannelTokenDeliveryMode { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.BackChannelUserCodeParameter Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.BackChannelUserCodeParameter}

Indicates whether the backchannel authentication process supports user codes for this client\.

```csharp
public bool BackChannelUserCodeParameter { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.ClientId Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientId}

Identifies the client's unique identifier as recognized by the authorization server\.
It is used in various OAuth 2\.0 and OpenID Connect flows to represent the client application\.

```csharp
public string ClientId { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.ClientName Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientName}

A human\-readable name for the client application,
which can be displayed to users during the authorization process\.

```csharp
public string? ClientName { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.ClientSecrets Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientSecrets}

A collection of secrets associated with the client, used for authenticating the client to the authorization server\.
Multiple secrets can be provided for added security\.

```csharp
public Abblix.Oidc.Server.Features.ClientInformation.ClientSecret[]? ClientSecrets { get; set; }
```

#### Property Value
[ClientSecret](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientSecret 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientSecret')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.ClientType Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientType}

Classifies the client based on its ability to securely maintain a client secret\. Derived from
[TokenEndpointAuthMethod](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TokenEndpointAuthMethod 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.TokenEndpointAuthMethod'): `none` yields [Public](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientType#Abblix.Oidc.Server.Common.Constants.ClientType.Public 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientType\.Public'); any
other authentication method \(secrets, keys, certificates\) yields [Confidential](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientType#Abblix.Oidc.Server.Common.Constants.ClientType.Confidential 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientType\.Confidential')\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ClientType ClientType { get; }
```

#### Property Value
[ClientType](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientType 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientType')

## ClientInfo\.ClientUri Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientUri}

A URL pointing to a web page providing information about the client application\.
This is typically used to offer additional context to users during the authorization process\.

```csharp
public System.Uri? ClientUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.Contacts Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.Contacts}

An array of contact email addresses associated with the client, primarily used for support purposes\.

```csharp
public string[]? Contacts { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.DefaultAcrValues Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.DefaultAcrValues}

Specifies the default Authentication Context Class Reference \(ACR\) values for the client\.
These values indicate the types of authentication methods or levels of assurance required\.

```csharp
public string[]? DefaultAcrValues { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.DefaultMaxAge Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.DefaultMaxAge}

The maximum time in seconds since the user's authentication that the client accepts\.
Requests exceeding this time will require re\-authentication of the user\.

```csharp
public System.Nullable<System.TimeSpan> DefaultMaxAge { get; set; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientInfo\.ExpiresAfter Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ExpiresAfter}

Expiration time for this dynamically registered client in distributed cache\.
If not set, the default expiration configured in the server settings is used\.
Implements pseudo\-sliding expiration: TTL is reset on each access\.

```csharp
public System.Nullable<System.TimeSpan> ExpiresAfter { get; set; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientInfo\.ForceAuthorizationDetailsInIdentityToken Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ForceAuthorizationDetailsInIdentityToken}

When `true`, the `authorization_details` claim is emitted on the ID token
for this client in addition to the access token and introspection response\. Default
`false`\. RFC 9396 is silent on id\_token; default\-off preserves role separation
between identity assertion \(id\_token\) and authorization payload \(access token \+
introspection\)\. Host\-controlled behavioural extension — NOT exposed via DCR \(no
OIDC wire metadata for this\), mirroring the
[ForceUserClaimsInIdentityToken](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ForceUserClaimsInIdentityToken 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.ForceUserClaimsInIdentityToken') precedent\.

```csharp
public bool ForceAuthorizationDetailsInIdentityToken { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.ForceUserClaimsInIdentityToken Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ForceUserClaimsInIdentityToken}

Controls whether claims about the authenticated user are included directly in the identity token
instead of being obtained separately via the UserInfo endpoint\.

```csharp
public bool ForceUserClaimsInIdentityToken { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.FrontChannelLogout Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.FrontChannelLogout}

Options for configuring front\-channel logout behavior, allowing the client to participate in logout requests
initiated by other clients\.

```csharp
public Abblix.Oidc.Server.Common.Configuration.FrontChannelLogoutOptions? FrontChannelLogout { get; set; }
```

#### Property Value
[FrontChannelLogoutOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.FrontChannelLogoutOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.FrontChannelLogoutOptions')

## ClientInfo\.IdentityTokenEncryptedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IdentityTokenEncryptedResponseAlgorithm}

Specifies the algorithm used to encrypt identity tokens issued to the client\.

```csharp
public string? IdentityTokenEncryptedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.IdentityTokenEncryptedResponseEncryption Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IdentityTokenEncryptedResponseEncryption}

Specifies the encryption method used to encrypt identity tokens issued to the client\.

```csharp
public string? IdentityTokenEncryptedResponseEncryption { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.IdentityTokenExpiresIn Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IdentityTokenExpiresIn}

Determines the validity period of identity tokens issued to this client\.
Shorter durations enhance security by reducing the window of misuse\.

```csharp
public System.TimeSpan IdentityTokenExpiresIn { get; set; }
```

#### Property Value
[System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan')

## ClientInfo\.IdentityTokenSignedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IdentityTokenSignedResponseAlgorithm}

Specifies the algorithm that must be used for signing identity token responses issued to this client\.
Per Back\-Channel Logout 1\.0 §2\.4 logout tokens are signed in the same manner as ID Tokens, so this
value also serves as the default signing algorithm for back\-channel logout tokens unless
[LogoutTokenSignedResponseAlgorithm](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.LogoutTokenSignedResponseAlgorithm 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.LogoutTokenSignedResponseAlgorithm') overrides it\.

```csharp
public string IdentityTokenSignedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.InitiateLoginUri Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.InitiateLoginUri}

A URI that allows third\-party sites to initiate a login by the client, facilitating integrations and
single sign\-on scenarios\.

```csharp
public System.Uri? InitiateLoginUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.IntrospectionEncryptedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IntrospectionEncryptedResponseAlgorithm}

RFC 9701 \(`introspection_encrypted_response_alg`\): the key\-management algorithm used to encrypt
introspection\-response JWTs returned to the client\.

```csharp
public string? IntrospectionEncryptedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.IntrospectionEncryptedResponseEncryption Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IntrospectionEncryptedResponseEncryption}

RFC 9701 \(`introspection_encrypted_response_enc`\): the content\-encryption algorithm used to encrypt
introspection\-response JWTs returned to the client\.

```csharp
public string? IntrospectionEncryptedResponseEncryption { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.IntrospectionSignedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IntrospectionSignedResponseAlgorithm}

RFC 9701 \(`introspection_signed_response_alg`\): the JWS algorithm used to sign introspection responses
returned to this client as a JWT\. [None](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.SigningAlgorithms#Abblix.Jwt.SigningAlgorithms.None 'Abblix\.Jwt\.SigningAlgorithms\.None') \(the default\) means the client receives
a plain JSON introspection response; any other value opts the client into a signed JWT response\.

```csharp
public string IntrospectionSignedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.Jwks Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.Jwks}

The set of JSON Web Keys used by the client, typically for signing request objects and decrypting
identity tokens or encrypted user information\.

```csharp
public Abblix.Jwt.JsonWebKeySet? Jwks { get; set; }
```

#### Property Value
[JsonWebKeySet](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKeySet 'Abblix\.Jwt\.JsonWebKeySet')

## ClientInfo\.JwksUri Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.JwksUri}

The publicly accessible URL where the client's JSON Web Key Set \(JWKS\) can be retrieved\.

```csharp
public System.Uri? JwksUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.LogoUri Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.LogoUri}

A URL pointing to an image file representing the client's logo, which can be displayed in user interfaces
during authorization\.

```csharp
public System.Uri? LogoUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.LogoutTokenSignedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.LogoutTokenSignedResponseAlgorithm}

The algorithm used to sign back\-channel logout tokens issued to this client\. When null
\(the default\), the value of [IdentityTokenSignedResponseAlgorithm](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.IdentityTokenSignedResponseAlgorithm 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.IdentityTokenSignedResponseAlgorithm') applies —
Back\-Channel Logout 1\.0 §2\.4 signs logout tokens in the same manner as ID Tokens, and this
property makes that otherwise implicit coupling visible and overridable per client\. There is
no registered DCR metadata parameter for it, so the override is host\-side configuration only\.

```csharp
public string? LogoutTokenSignedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.OfflineAccessAllowed Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.OfflineAccessAllowed}

Allows the client to request tokens that enable access to the user's resources while they’re offline\.

```csharp
public System.Nullable<bool> OfflineAccessAllowed { get; set; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientInfo\.ParseLoginHintTokenAsJwt Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ParseLoginHintTokenAsJwt}

Indicates whether the login hint token should be parsed and validated as a JSON Web Token \(JWT\)\.

```csharp
public bool ParseLoginHintTokenAsJwt { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

### Remarks
If this property is set to `false`, it means the login hint token is not in JWT format\.
In this case, the client is responsible for parsing and validating the token as part of the validation flow,
as the authorization server will not handle its validation automatically\.

## ClientInfo\.PkceRequired Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.PkceRequired}

Indicates whether the client is to use Proof Key for Code Exchange \(PKCE\) in the authorization code flow,
enhancing security for public clients\.

```csharp
public System.Nullable<bool> PkceRequired { get; set; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientInfo\.PlainPkceAllowed Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.PlainPkceAllowed}

Indicates if the client is allowed to use the "plain" method for PKCE\.
It is recommended to use stronger methods like "S256" for enhanced security\.

```csharp
public bool PlainPkceAllowed { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.PolicyUri Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.PolicyUri}

A URL pointing to the client's policy documentation, providing transparency on how user data
is handled and protected\.

```csharp
public System.Uri? PolicyUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.PostLogoutRedirectUris Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.PostLogoutRedirectUris}

Specifies the URIs where the user\-agent can be redirected after logging out from the client application\.
This allows for a seamless user experience upon logout\.

```csharp
public System.Uri[] PostLogoutRedirectUris { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.RedirectUris Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RedirectUris}

Specifies the URIs where the user\-agent can be redirected after authorization\.
These URIs must be pre\-registered and match the redirect URI provided in the authorization request\.

```csharp
public System.Uri[] RedirectUris { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.RefreshToken Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RefreshToken}

Configures the behavior and properties of refresh tokens issued to this client,
such as their expiration and renewal policies\.

```csharp
public Abblix.Oidc.Server.Common.Configuration.RefreshTokenOptions RefreshToken { get; set; }
```

#### Property Value
[RefreshTokenOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.RefreshTokenOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.RefreshTokenOptions')

## ClientInfo\.RequestObjectEncryptionAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequestObjectEncryptionAlgorithm}

Specifies the algorithm required for encrypting request objects sent to the authorization server\.

```csharp
public string? RequestObjectEncryptionAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.RequestObjectEncryptionMethod Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequestObjectEncryptionMethod}

Specifies the encryption method required for encrypting request objects sent to the authorization server\.

```csharp
public string? RequestObjectEncryptionMethod { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.RequestObjectSigningAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequestObjectSigningAlgorithm}

Specifies the algorithm required for signing request objects sent to the authorization server\.

```csharp
public string? RequestObjectSigningAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.RequestUris Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequestUris}

The list of allowed URI values to validate the `request_uri` parameter in authorization requests\.

```csharp
public System.Uri[] RequestUris { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

### Remarks
The `request_uri` parameter references a pre\-hosted authorization request object\.
This property specifies the valid URIs that can be included in the `request_uri` parameter\.
By defining this list, the server ensures that only pre\-approved and secure URIs are accepted,
mitigating risks such as unauthorized or malicious requests\.

## ClientInfo\.RequireAuthTime Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequireAuthTime}

Indicates whether the authorization server must include the \`auth\_time\` claim in the ID token\.

```csharp
public System.Nullable<bool> RequireAuthTime { get; set; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientInfo\.RequireDPoP Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequireDPoP}

RFC 9449 §5\.2 client metadata \(`dpop_bound_access_tokens`\): when `true`,
the client MUST present a valid DPoP proof on the token endpoint and the issued
access token will be DPoP\-bound \(`cnf.jkt`\)\. When `false`, DPoP is
opportunistic — a valid proof still binds the token, otherwise a Bearer token is
issued\.

```csharp
public bool RequireDPoP { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.RequirePushedAuthorizationRequests Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequirePushedAuthorizationRequests}

RFC 9126 §6 client metadata \(`require_pushed_authorization_requests`\): when `true`,
a pushed authorization request is the only way this client may start an authorization flow —
a request arriving at the authorization endpoint without a PAR\-issued request URI is rejected
even when the server\-wide requirement is off\. FAPI\-grade clients set this so a granular
server\-side toggle cannot silently weaken them\.

```csharp
public bool RequirePushedAuthorizationRequests { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.RequireSignedRequestObject Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.RequireSignedRequestObject}

RFC 9101 §10\.5 client metadata \(`require_signed_request_object`\): when `true`,
this client must deliver its authorization request parameters as a signed request object
\(via the request parameter or a pushed authorization request\) — plain\-parameter requests and
unsigned request objects are rejected\.

```csharp
public bool RequireSignedRequestObject { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.SectorIdentifier Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.SectorIdentifier}

Used in conjunction with pairwise subject identifiers to calculate the subject value returned to the client\.
This field is particularly relevant to ensuring user privacy by providing a different subject identifier
to each client, even if it's the same end\-user\. It typically contains a URL or a unique identifier
representing the client's sector\.

```csharp
public string? SectorIdentifier { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.SecurityProfile Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.SecurityProfile}

The named security profile this client is held to\. [Fapi2](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile#Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile.Fapi2 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientSecurityProfile\.Fapi2')
forces the FAPI 2\.0 control bundle \(PKCE restricted to `S256`, Pushed Authorization
Requests, sender\-constrained tokens, code\-only responses\) on the client and prevents the
individual toggles above from weakening it\. [None](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile#Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile.None 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientSecurityProfile\.None') is an
explicit opt\-out that leaves the client governed by those individual toggles alone, overriding
any server\-wide default\. `null` \(the default\) means the client states no preference and
inherits [DefaultSecurityProfile](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.DefaultSecurityProfile 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.DefaultSecurityProfile') — which is
itself [None](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile#Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile.None 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientSecurityProfile\.None') unless the deployment sets a server\-wide
profile, so existing clients are unaffected\.

```csharp
public System.Nullable<Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile> SecurityProfile { get; set; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[ClientSecurityProfile](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ClientSecurityProfile 'Abblix\.Oidc\.Server\.Common\.Constants\.ClientSecurityProfile')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientInfo\.SoftwareId Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.SoftwareId}

A unique identifier for the client software per RFC 7591 Section 2\.

```csharp
public string? SoftwareId { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.SoftwareVersion Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.SoftwareVersion}

A version identifier for the client software per RFC 7591 Section 2\.

```csharp
public string? SoftwareVersion { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.SubjectType Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.SubjectType}

Specifies the subject identifier type requested by the client\. This influences how the authorization server
represents the authenticated user's identity to the client, affecting privacy and uniqueness across different
clients\. Common types include "public" and "pairwise"\.

```csharp
public string? SubjectType { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.TermsOfServiceUri Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TermsOfServiceUri}

A URL pointing to the client's terms of service, outlining the legal agreement between the user
and the service provider\.

```csharp
public System.Uri? TermsOfServiceUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')

## ClientInfo\.TlsClientAuth Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TlsClientAuth}

TLS client authentication metadata \(RFC 8705\) for tls\_client\_auth method\.

```csharp
public Abblix.Oidc.Server.Features.ClientInformation.TlsClientAuthOptions? TlsClientAuth { get; set; }
```

#### Property Value
[TlsClientAuthOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.TlsClientAuthOptions 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.TlsClientAuthOptions')

## ClientInfo\.TlsClientCertificateBoundAccessTokens Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TlsClientCertificateBoundAccessTokens}

RFC 8705 §3\.4 client metadata \(`tls_client_certificate_bound_access_tokens`\): when
`true`, access tokens issued to this client are certificate\-bound whenever the token
request arrives over mutual TLS — independently of the client authentication method, which
is what distinguishes this flag from the implicit binding the mTLS authentication methods
already get\.

```csharp
public bool TlsClientCertificateBoundAccessTokens { get; set; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## ClientInfo\.TokenEndpointAuthMethod Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TokenEndpointAuthMethod}

Describes how the client authenticates to the token endpoint per RFC 6749 §2\.3 / OIDC Core §9\.
Common values include `client_secret_basic`, `client_secret_post`, `private_key_jwt`,
`client_secret_jwt`, `tls_client_auth` \(RFC 8705\), and `none` \(public clients\)\.
Drives the value of [ClientType](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.ClientType 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.ClientType')\.

```csharp
public string TokenEndpointAuthMethod { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.TokenEndpointAuthSigningAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TokenEndpointAuthSigningAlgorithm}

Specifies the algorithm used to sign client authentication requests at the token endpoint\.

```csharp
public string? TokenEndpointAuthSigningAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.TokenExchangeAllowedAudiences Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TokenExchangeAllowedAudiences}

RFC 8693 §2\.1 per\-client allowlist of `audience` values this client may request when
exchanging a token\. The requested audience is written into the issued token's `aud`
claim, so without a constraint a client could mint a token for any target service it names\.
This allowlist is therefore \<b\>default\-deny\</b\>, unlike the unconstrained\-by\-default
[TokenExchangeAllowedSubjectTokenTypes](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TokenExchangeAllowedSubjectTokenTypes 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.TokenExchangeAllowedSubjectTokenTypes'):
- `null` or empty array: the client may not request any `audience`
              -- a Token Exchange request carrying one is rejected with `invalid_target`.
- Non-empty array: allowlist -- only the listed audience values are accepted;
              any other is rejected with `invalid_target`.

A request that omits `audience` is unaffected\.

```csharp
public string[]? TokenExchangeAllowedAudiences { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.TokenExchangeAllowedSubjectTokenTypes Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.TokenExchangeAllowedSubjectTokenTypes}

RFC 8693 §2\.1 per\-client allowlist of `subject_token_type` URIs this client may submit
to the Token Exchange grant\. Independent of [AllowedGrantTypes](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AllowedGrantTypes 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.AllowedGrantTypes') \-\- a client must
have `urn:ietf:params:oauth:grant-type:token-exchange` in
[AllowedGrantTypes](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AllowedGrantTypes 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.AllowedGrantTypes') to invoke the grant, and the requested
`subject_token_type` must additionally satisfy this allowlist\.
- `null`: no constraint (any of [TokenExchangeTokenTypes](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.TokenExchangeTokenTypes 'Abblix\.Oidc\.Server\.Common\.Constants\.TokenExchangeTokenTypes') the
              AS can validate is accepted).
- Empty array: forbidden -- every Token Exchange request from this client is
              rejected with `invalid_request` regardless of `subject_token_type`.
- Non-empty array: allowlist -- only the listed type URIs are accepted; any other
              is rejected.

Mirrors the [AuthorizationDetailsTypes](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.AuthorizationDetailsTypes 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\.AuthorizationDetailsTypes') tri\-state pattern\.

```csharp
public string[]? TokenExchangeAllowedSubjectTokenTypes { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ClientInfo\.UserInfoEncryptedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.UserInfoEncryptedResponseAlgorithm}

Specifies the algorithm used to encrypt UserInfo responses returned to the client\.

```csharp
public string? UserInfoEncryptedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.UserInfoEncryptedResponseEncryption Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.UserInfoEncryptedResponseEncryption}

Specifies the encryption method used to encrypt UserInfo responses returned to the client\.

```csharp
public string? UserInfoEncryptedResponseEncryption { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientInfo\.UserInfoSignedResponseAlgorithm Property {#Abblix.Oidc.Server.Features.ClientInformation.ClientInfo.UserInfoSignedResponseAlgorithm}

Determines the algorithm used for signing responses from the UserInfo endpoint\.
This can enhance the security of transmitted user information\.

```csharp
public string UserInfoSignedResponseAlgorithm { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
