Email Authentication installation
The Email Authentication extension is an authentication component that provides a simple email-based login mechanism.
When configured, users log in by entering their email address. A one-time sign-in code is then sent to their email. If the user exists in ShareAspace, the code can be used for a limited period to authenticate.
Prerequisites
The Email Authentication extension requires:
- A server running Microsoft Internet Information Services (IIS).
- Software prerequisites for an Email Authentication server.
Note
An email extension (such as SMTP or SendGrid) must be configured on the ShareAspace collection for email delivery.
Installation steps
Step 1: Run the installer
Run the EmailAuthentication.msi installer to install the ShareAspace Email Authentication extension on the IIS server.
Step 2: Configure IIS
During installation, an IIS Application Pool named "EmailAuthentication" is created.
By default, the Application Pool runs under the built-in LocalSystem account.
Note
If a different account is used, it must have read access to the Email Authentication installation folder.
Step 3: Configure the component
See the Configuration section.
Step 4: Register the extension
See the Extension registration section.
Configuration
Open the appsettings.json file located in the Email Authentication installation folder.
By default:
C:\Program Files\Eurostep\ShareAspace\EmailAuthentication\appsettings.json
Example configuration:
{
"Logging": {
"LogLevel": {
"Default": "Debug"
}
},
"AllowedHosts": "*",
"NovaConfig": {
"SymmetricKey": "<generated-key>",
"EnableApiEndpoints": true,
"BaseAddress": "https://emailauth.example.com/EmailAuthentication",
"ServerAddress": "https://host.example.com:5001"
}
}
Configuration properties
SymmetricKey– Symmetric key used to secure communication with ShareAspace.BaseAddress– Public address where the Email Authentication service is hosted.ServerAddress– ShareAspace Host or Reverse Proxy endpoint.
SymmetricKey
The SymmetricKey should be generated as described in:
Generate symmetric signing keys
OpenTelemetry configuration
The Email Authentication component supports OpenTelemetry (OTEL) for logging, metrics, and tracing.
Configuration is performed using configuration variables, for example:
{
"OTEL_SERVICE_NAME": "ShareAspace.EmailAuthentication",
"OTEL_EXPORTER_OTLP_ENDPOINT": "https://host.example.com:4317",
"OTEL_EXPORTER_OTLP_PROTOCOL": "grpc"
}
Additional OTEL configuration options are available and are shared across all ShareAspace components.
See: OpenTelemetry logging.
Extension registration
The Email Authentication extension must be registered as a Nova Extension on a bootstrapped ShareAspace collection.
Note
The Email Authentication service must be running during registration, as a manifest exchange will occur.
Example registration script:
param (
[Parameter(Mandatory = $true)]
[string]$NovaHost,
[Parameter(Mandatory = $true)]
[string]$PersonalAccessToken,
[Parameter(Mandatory = $true)]
[string]$Extension,
[Parameter(Mandatory = $true)]
[string]$ExtensionApiKey
)
$uri = "{0}/collection/externalExtension/novaExtension" -f $NovaHost
$pat = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$PersonalAccessToken"))
$headers = @{ "Authorization" = "Basic $pat" }
$body = @{ "hostUri" = $Extension; "apiKey" = $ExtensionApiKey; "tokenLifeTime" = 15 } | ConvertTo-Json
Invoke-WebRequest -Method Post -Uri $uri -Headers $headers -Body $body -ContentType "application/json" -UseBasicParsing
Example usage:
.\Add-Extension.ps1 `
-NovaHost https://host.example.com:5001 `
-PersonalAccessToken "<token>" `
-Extension "https://emailauth.example.com/EmailAuthentication" `
-ExtensionApiKey "<apikey>"