Class SharedSecretAuthentication
public class SharedSecretAuthentication : IAuthentication
- Inheritance
-
SharedSecretAuthentication
- Implements
- Inherited Members
Constructors
SharedSecretAuthentication(IAuthentication, byte[])
public SharedSecretAuthentication(IAuthentication localAuthentication, byte[] sharedSecret)
Parameters
localAuthenticationIAuthenticationsharedSecretbyte[]
SharedSecretAuthentication(IAuthentication, string)
public SharedSecretAuthentication(IAuthentication localAuthentication, string sharedSecret)
Parameters
localAuthenticationIAuthenticationsharedSecretstring
Fields
LocalAuthentication
public readonly IAuthentication LocalAuthentication
Field Value
Properties
CanSign
true if the authenticator supports digital signatures (not necessarily cryptographic)
public bool CanSign { get; }
Property Value
Remarks
signature doesn't have to be based on the operation; it can use some other capability like ambient windows logon
IsAuthoritative
If true, the returned identity should be accepted without server verification
public bool IsAuthoritative { get; }
Property Value
Remarks
May depend on ambient state - don't cache the result. As well as enabling automatic login, this is used by SecurityService to decide whether it's ok to perform purely-local authentication without calling IEntityStore.Connect.
Realm
Describes identities within the purview of this authenticator
public string Realm { get; }
Property Value
RequiresCredentials
Expects non-empty Credentials in order to perform client-side identity operations
public bool RequiresCredentials { get; }
Property Value
Methods
CheckSignatureAsync(IEntityContext, Identity, byte[], byte[])
check a signature by the specified identity (which may be from various realms)
public Task<AuthenticationResult> CheckSignatureAsync(IEntityContext scopedContext, Identity subject, byte[] operation, byte[] token)
Parameters
scopedContextIEntityContextsubjectIdentityoperationbyte[]tokenbyte[]
Returns
- Task<AuthenticationResult>
(signature found for user, null/reason for failure)
CreateSignatureAsync(Credentials, byte[])
sign a message using the supplied credentials
public Task<AuthenticationResult<byte[]>> CreateSignatureAsync(Credentials credentials, byte[] operation)
Parameters
credentialsCredentialsoperationbyte[]
Returns
- Task<AuthenticationResult<byte[]>>
opaque signature
GetIdentity(Credentials)
Extract a subject from the environment or the supplied credentials.
public AuthenticationResult<string> GetIdentity(Credentials credentials)
Parameters
credentialsCredentials
Returns
- AuthenticationResult<string>
subject name, unverified - from local knowledge only
GetIdentity2(Credentials)
Extract an identity, including its realm, from the environment or the supplied credentials.
public AuthenticationResult<Identity> GetIdentity2(Credentials credentials)
Parameters
credentialsCredentials
Returns
- AuthenticationResult<Identity>
identity, unverified - from local knowledge only
Remarks
The default places the GetIdentity(Credentials) subject in this authenticator's AuthenticatedRealm, which is correct for most authenticators. Override to place subjects in another realm, e.g. AnonymousRealm.
VerifyIdentity(Credentials, string)
Verify that the subject matches the supplied credentials. Available synchronously only if IsAuthoritative returns true.
public AuthenticationResult VerifyIdentity(Credentials credentials, string subject)
Parameters
credentialsCredentialssubjectstring
Returns
- AuthenticationResult
(true/false for authentication state, null/reason for failure)
VerifyIdentityAsync(Credentials, IEntityContext, string)
verify that the subject matches the supplied credentials
public Task<AuthenticationResult> VerifyIdentityAsync(Credentials credentials, IEntityContext scopedContext, string subject)
Parameters
credentialsCredentialsscopedContextIEntityContextsubjectstring
Returns
- Task<AuthenticationResult>
(true/false for authentication state, null/reason for failure)