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

## IEntityStorageKeyFactory Interface

Defines a contract for generating entity storage keys with consistent formatting\.
Provides standardized key generation for all OIDC storage entities\.

```csharp
public interface IEntityStorageKeyFactory
```

Derived  
↳ [EntityStorageKeyFactory](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.EntityStorageKeyFactory 'Abblix\.Oidc\.Server\.Features\.Storages\.EntityStorageKeyFactory')
### Methods

## IEntityStorageKeyFactory\.AuthorizationRequestKey\(Uri\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizationRequestKey(System.Uri)}

Generates a storage key for an authorization request by URI\.

```csharp
string AuthorizationRequestKey(System.Uri requestUri);
```
#### Parameters

###### `requestUri` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizationRequestKey(System.Uri).requestUri}

The pushed authorization request URI\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the authorization request\.

## IEntityStorageKeyFactory\.AuthorizationValueReuseKey\(string, string, string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizationValueReuseKey(string,string,string)}

Generates a storage key for reuse detection of an authorization request value \(a PKCE
`code_challenge` or an OpenID Connect `nonce`\), scoped to a client and the value's kind\.

```csharp
string AuthorizationValueReuseKey(string clientId, string valueKind, string valueHash);
```
#### Parameters

###### `clientId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizationValueReuseKey(string,string,string).clientId}

The client the value belongs to\.

###### `valueKind` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizationValueReuseKey(string,string,string).valueKind}

A discriminator for the value's role, so distinct kinds never collide\.

###### `valueHash` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizationValueReuseKey(string,string,string).valueHash}

A hash of the value; the raw value is never part of the key\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the recorded value\.

## IEntityStorageKeyFactory\.AuthorizedGrantKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.AuthorizedGrantKey(string)}

Generates a storage key for an authorized grant by authorization code\.

```csharp
string AuthorizedGrantKey(string authorizationCode);
```
#### Parameters

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

The OAuth 2\.0 authorization code\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the authorization grant\.

## IEntityStorageKeyFactory\.BackChannelAuthenticationRequestKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.BackChannelAuthenticationRequestKey(string)}

Generates a storage key for a backchannel authentication request by request ID\.

```csharp
string BackChannelAuthenticationRequestKey(string requestId);
```
#### Parameters

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

The CIBA authentication request identifier\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the backchannel authentication request\.

## IEntityStorageKeyFactory\.DeviceAuthorizationRequestKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.DeviceAuthorizationRequestKey(string)}

Generates a storage key for a device authorization request by device code\.

```csharp
string DeviceAuthorizationRequestKey(string deviceCode);
```
#### Parameters

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

The device code identifier\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the device authorization request\.

## IEntityStorageKeyFactory\.DeviceAuthorizationUserCodeKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.DeviceAuthorizationUserCodeKey(string)}

Generates a storage key for mapping a user code to its device code\.

```csharp
string DeviceAuthorizationUserCodeKey(string userCode);
```
#### Parameters

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

The user\-friendly verification code\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the user code mapping\.

## IEntityStorageKeyFactory\.IpRateLimitKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.IpRateLimitKey(string)}

Generates a storage key for rate limiting by IP address or client identifier\.

```csharp
string IpRateLimitKey(string clientIdentifier);
```
#### Parameters

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

The client identifier \(typically IP address\)\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the IP rate limit state\.

## IEntityStorageKeyFactory\.JsonWebTokenStatusKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.JsonWebTokenStatusKey(string)}

Generates a storage key for JWT status by JWT ID\.

```csharp
string JsonWebTokenStatusKey(string jwtId);
```
#### Parameters

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

The JSON Web Token identifier\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the JWT status\.

## IEntityStorageKeyFactory\.RegistrationAccessTokenKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.RegistrationAccessTokenKey(string)}

Generates a storage key for the registration access token binding of a client \(RFC 7592\)\.

```csharp
string RegistrationAccessTokenKey(string clientId);
```
#### Parameters

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

The identifier of the registered client\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the client's current registration\-access\-token jti\.

## IEntityStorageKeyFactory\.UserCodeRateLimitKey\(string\) Method {#Abblix.Oidc.Server.Features.Storages.IEntityStorageKeyFactory.UserCodeRateLimitKey(string)}

Generates a storage key for rate limiting user code verification attempts\.

```csharp
string UserCodeRateLimitKey(string userCode);
```
#### Parameters

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

The user code being verified\.

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A formatted storage key for the user code rate limit state\.
