Session Authentication Provider

ISessionIdentityProviderService in assembly SanteDB.Core.Api version 3.0.1980.0

Summary

Represents a session identity service that can provide identities

Operations

OperationResponse/ReturnInput/ParameterDescription

Authenticate

IPrincipal

ISession session

Authenticate based on session

GetIdentities

IIdentity[]

ISession session

Gets an un-authenticated principal from the specified session

Implementations

MemorySessionManagerService - (SanteDB.Caching.Memory)

Represents a ISessionProviderService which uses RAM caching

Service Registration

...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Caching.Memory.Session.MemorySessionManagerService, SanteDB.Caching.Memory, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>

BridgedSessionManager - (SanteDB.Client)

Represents a bridged session provider manager

Description

This class is responsible for managing local sessions (via a synchronized pattern) as well as upstream sessions which need to interact with the upstream, as well as transitioning between the two.

Service Registration

...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Client.Upstream.Security.BridgedSessionManager, SanteDB.Client, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>

AdoSessionProvider - (SanteDB.Persistence.Data)

An identity provider service that uses the ADO session table

Service Registration

...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.AdoSessionProvider, SanteDB.Persistence.Data, Version=3.0.1980.0, Culture=neutral, PublicKeyToken=null" />
		...
	</serviceProviders>

Example Implementation

/// Example Implementation
using SanteDB.Core.Security.Services;
/// Other usings here
public class MySessionIdentityProviderService : SanteDB.Core.Security.Services.ISessionIdentityProviderService { 
	public String ServiceName => "My own ISessionIdentityProviderService service";
	/// <summary>
	/// Authenticate based on session
	/// </summary>
	public IPrincipal Authenticate(ISession session){
		throw new System.NotImplementedException();
	}
	/// <summary>
	/// Gets an un-authenticated principal from the specified session
	/// </summary>
	public IIdentity[] GetIdentities(ISession session){
		throw new System.NotImplementedException();
	}
}

References

Last updated