The goal of this library is to provide a minimal model of an application and its peers and to support extensibility thanks to simple "features" that can be associated to the identity objects AND to minimize the "configuration mess".
Application identity may be the only aspect that requires an explicit configuration. Any other aspects can have a default behavior, but the remote parties with whom an application interacts and how they interact can hardly exist without configuration.
The initial objects are defined by a standard .NET configuration that is locked and cannot be changed during the application lifetime. Configured objects are immutable but one can dynamically define new objects and destroy dynamically defined objects. CK.AppIdentity relies on CK.Configuration to handle .NET configurations objects.
Contains the core objects:
- AppIdentityService is the root type. It is a singleton service that carries the application identity and the remote parties.
- The ApplicationIdentityFeatureDriver is the base class to implement in order to manage features on the Application identity objects.
To understand this package, please read (in this order):
- Application identity model configuration introduces Application Identity through its configuration.
- Application identity model describes the Application Identity objects built from their configurations.
- The Features eventually presents the real meat of identity objects.
This small library implements initialization of the identity configuration. It provides
a single extension method to IHostBuilder
that injects a configured instance of ApplicationIdentityServiceConfiguration
as a singleton service in the DI container and initializes CK.Core.CoreApplicationIdentity
.