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

## SignedMetadataProvider Class

Signs the discovery document with one of this provider's own signing keys, per RFC 8414 §2\.1\.

```csharp
public class SignedMetadataProvider : Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.ISignedMetadataProvider
```

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

Implements [ISignedMetadataProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.ISignedMetadataProvider 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.ISignedMetadataProvider')
### Constructors

## SignedMetadataProvider\(IJsonWebTokenCreator, IAuthServiceKeysProvider, TimeProvider\) Constructor {#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignedMetadataProvider(Abblix.Jwt.IJsonWebTokenCreator,Abblix.Oidc.Server.Common.Interfaces.IAuthServiceKeysProvider,System.TimeProvider)}

Signs the discovery document with one of this provider's own signing keys, per RFC 8414 §2\.1\.

```csharp
public SignedMetadataProvider(Abblix.Jwt.IJsonWebTokenCreator jwtCreator, Abblix.Oidc.Server.Common.Interfaces.IAuthServiceKeysProvider serviceKeysProvider, System.TimeProvider clock);
```
#### Parameters

###### `jwtCreator` [IJsonWebTokenCreator](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.IJsonWebTokenCreator 'Abblix\.Jwt\.IJsonWebTokenCreator') {#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignedMetadataProvider(Abblix.Jwt.IJsonWebTokenCreator,Abblix.Oidc.Server.Common.Interfaces.IAuthServiceKeysProvider,System.TimeProvider).jwtCreator}

Issues the JWS\.

###### `serviceKeysProvider` [IAuthServiceKeysProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IAuthServiceKeysProvider 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IAuthServiceKeysProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignedMetadataProvider(Abblix.Jwt.IJsonWebTokenCreator,Abblix.Oidc.Server.Common.Interfaces.IAuthServiceKeysProvider,System.TimeProvider).serviceKeysProvider}

Supplies this provider's signing keys\.

###### `clock` [System\.TimeProvider](https://learn.microsoft.com/en-us/dotnet/api/system.timeprovider 'System\.TimeProvider') {#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignedMetadataProvider(Abblix.Jwt.IJsonWebTokenCreator,Abblix.Oidc.Server.Common.Interfaces.IAuthServiceKeysProvider,System.TimeProvider).clock}

Stamps `iat`\.
### Methods

## SignedMetadataProvider\.SignAsync\(ConfigurationResponse\) Method {#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignAsync(Abblix.Oidc.Server.Model.ConfigurationResponse)}

Signs [metadata](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignAsync(Abblix.Oidc.Server.Model.ConfigurationResponse).metadata 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.SignedMetadataProvider\.SignAsync\(Abblix\.Oidc\.Server\.Model\.ConfigurationResponse\)\.metadata') and returns the compact JWS\.

```csharp
public System.Threading.Tasks.Task<string> SignAsync(Abblix.Oidc.Server.Model.ConfigurationResponse metadata);
```
#### Parameters

###### `metadata` [ConfigurationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ConfigurationResponse 'Abblix\.Oidc\.Server\.Model\.ConfigurationResponse') {#Abblix.Oidc.Server.Endpoints.Configuration.SignedMetadataProvider.SignAsync(Abblix.Oidc.Server.Model.ConfigurationResponse).metadata}

The fully assembled metadata, including resolved endpoint URLs and any mTLS aliases, and without
`signed_metadata` itself: RFC 8414 §2\.1 has the bundle assert the metadata, not restate its own
signature\.

Implements [SignAsync\(ConfigurationResponse\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.ISignedMetadataProvider#Abblix.Oidc.Server.Endpoints.Configuration.Interfaces.ISignedMetadataProvider.SignAsync(Abblix.Oidc.Server.Model.ConfigurationResponse) 'Abblix\.Oidc\.Server\.Endpoints\.Configuration\.Interfaces\.ISignedMetadataProvider\.SignAsync\(Abblix\.Oidc\.Server\.Model\.ConfigurationResponse\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
The compact\-serialized JWS\.
