Duende Storage
This section contains samples demonstrating Duende Storage with IdentityServer. Duende Storage persists IdentityServer configuration and operational data, and its administration APIs let your application manage and extend that configuration without writing directly to database tables.
Storage Sample
Section titled “Storage Sample”This sample runs IdentityServer with configuration and operational data stored in a shared in-memory SQLite database through Duende Storage. It creates all IdentityServer configuration at startup through the administration APIs and registers a fixed in-memory schema for client extension properties. It demonstrates:
- Defining a fixed client data-extension schema with a typed
allowed_regionattribute. - Creating scopes, identity resources, clients, secrets and extension-property values with the administration APIs.
- Obtaining a client-credentials token from configuration loaded through Duende Storage.
- Enforcing the
allowed_regionclient extension property in a custom token-request validator. - Signing in a test user with authorization code and PKCE to create a storage-backed server-side session.
- Searching stored clients with
IClientAdmin.QueryAsyncand inspecting stored sessions withIServerSideSessionStore.
The in-memory database is reset whenever the process stops, so the sample seeds itself on every run.
Storage SampleGitHub Repository for the Duende Storage Sample