The following are the tables that are consumed for persisting the metadata related to the AuthServer


ClientDetails

*************

This table has all the details about the client applications like the name, secret key, redirect uri which is a JSON array and the lifetimes for the access_token

 The application types are : MultiTenantAccess, InternalWeb

 MultiTenantAccess

 *****************

 This denotes that the application can be consumed by any tenant's with the same URl instead of a unique URI per tenant.

 InternalWeb

 ***********

 Denotes that the client belongs internally to a tenant with a unique URI.

 Flows

 *****

 Currently we support only the Authorization Code Grant and the implicit flows. The remaining fields are set with the default values as per the existing records.

SubjectDetails

**************

This table contains the mapping data related to the cello user and the corresponding external mapping like CelloUserId to Google Profile Id

AuthenticationProviders

***********************

This table contains all the registered identity providers like Cello, Social Logins, Active Directory

AuthenticationTypes

*******************

This table contains all the registered authentication types registered under a given identity provider. For example : Facebook, LinkedIn are valid authentication types under social logins identity providers.

TenantSetting

****************

This table contains an entry for each of the tenant to store the identity provider pertaining to that tenant.


UserSetting

**************

This table contains the user's preferred authentication type that was set when the user was created / registered with the application.

Sample Db Script

****************

The following is a database Script to insert a new client in the ClientDetails table

INSERT INTO [dbo].[ClientDetails]( [Id],[TenantId],[Name],[Description],[Secret],[Uri],[LogoUri],[ApplicationTypes],[RequireConsent],[AllowRememberConsent],[Flows],[RedirectUris],[SigningKeyType],[IdentityTokenLifetime],[AccessTokenLifetime],[RefreshTokenLifetime],[AuthorizationCodeLifetime],[ScopeRestrictions],[AccessTokenType],[PublicAccessAllowed],[ClientType],[CreatedBy],[CreatedOn],[Status] )

VALUES( N'2af3d511-7c80-453a-8062-01ec8a7b2ba1',N'b590cd25-3093-df11-8deb-001ec9dab123',N'Multi-Tenant Implicit Client',N'Multi-Tenant Implicit Client',N'UBd2DX9xIPprqtB7D0yb0w==',NULL,NULL,N'MultiTenantAccess',0,0,N'Implicit',N'["https://localhost/"]',N'Default',1200,1200,1200,1200,NULL,N'JWT',1,N'Web','3398F837-B988-4708-999D-D3DFE11875B3',GETDATE(),1 );