Security Challenge Authentication Provider

ISecurityChallengeIdentityService in assembly SanteDB.Core.Api version 3.0.1980.0

Summary

Represents a security challenge service which can provide identity

Events

Event
Type
Description

Authenticating

EventHandler<AuthenticatingEventArgs>

Fired prior to an authentication event

Authenticated

EventHandler<AuthenticatedEventArgs>

Fired after an authentication decision being made

Operations

Operation
Response/Return
Input/Parameter
Description

Authenticate

IPrincipal

String userName Guid challengeKey String response String tfaSecret

Authenticates the specified user with a challenge key and response

Implementations

BridgedIdentityProvider - (SanteDB.Client)

Represents an identity provider which bridges local and upstream

Service Registration

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

UpstreamIdentityProvider - (SanteDB.Client)

Represents an implementation of the IIdentityProviderService which uses an upstream oauth server

Service Registration

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

AdoSecurityChallengeProvider - (SanteDB.Persistence.Data)

Represents a callenge service which uses the ADO.NET tables

Service Registration

...
<section xsi:type="ApplicationServiceContextConfigurationSection" threadPoolSize="4">
	<serviceProviders>
		...
		<add type="SanteDB.Persistence.Data.Services.AdoSecurityChallengeProvider, 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 MySecurityChallengeIdentityService : SanteDB.Core.Security.Services.ISecurityChallengeIdentityService { 
	public String ServiceName => "My own ISecurityChallengeIdentityService service";
	/// <summary>
	/// Fired prior to an authentication event
	/// </summary>
	public event EventHandler<AuthenticatingEventArgs> Authenticating;
	/// <summary>
	/// Fired after an authentication decision being made
	/// </summary>
	public event EventHandler<AuthenticatedEventArgs> Authenticated;
	/// <summary>
	/// Authenticates the specified user with a challenge key and response
	/// </summary>
	public IPrincipal Authenticate(String userName,Guid challengeKey,String response,String tfaSecret){
		throw new System.NotImplementedException();
	}
}

References

Last updated