Our.Umbraco.Passless 0.0.5

dotnet add package Our.Umbraco.Passless --version 0.0.5                
NuGet\Install-Package Our.Umbraco.Passless -Version 0.0.5                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Our.Umbraco.Passless" Version="0.0.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Our.Umbraco.Passless --version 0.0.5                
#r "nuget: Our.Umbraco.Passless, 0.0.5"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Our.Umbraco.Passless as a Cake Addin
#addin nuget:?package=Our.Umbraco.Passless&version=0.0.5

// Install Our.Umbraco.Passless as a Cake Tool
#tool nuget:?package=Our.Umbraco.Passless&version=0.0.5                

Our.Umbraco.Passless - Passwordless login for Umbraco

Package NuGet
Our.Umbraco.Passless NuGet NuGet downloads

Passwordless login for Umbraco using FIDO2. Main implementation based on Fido2-net-lib a great implementation for any potential FIDO server.

Getting started

When you've installed and configured the package, log into the backffice, press your user icon in the top right corner and click Manage Fido Devices to add new devices.

Features

  • Passwordless login to the umbraco backoffice.
  • Register multiple Authenticators to your user
  • Platform (Windows hello etc) And Cross Platform (Android/Iphone via passkeys, YubiKey etc) Authenticators supported.
  • Forgot password registers new authenticator

Planned features

  • Passwordless login for members.
  • Better configuration for consumers
  • Umbraco 9 Support. This might take longer as the .net 5 version of fido2.net lib is quite outdated.

Known issues

  • The "Remember last authenticator" checkbox works poorly with passkeys, not sure if it can be helped?

Install

Use nuget to install Our.Umbraco.Passless

Install-Package Our.Umbraco.Passless

Configuration

You need to add these settings to your appsettings.config

 "Passless": {
   "DenyLocalLogin": true,//Optional, removes password login, defaults to false
   "UseUmbracoDb" : true, //Optional
   "fido2": {
     "serverName": "{your server name}",
     "serverDomain": "{YOUR DOMAIN}",
     "origins": [ "{YOUR ORIGIN}" ],
     "timestampDriftTolerance": {drifttollerance in ms}
   }
 }

For example:

"Passless": {
   "fido2": {
     "serverName": "Passless",
     "serverDomain": "localhost",
     "origins": [ "https://localhost:44351" ],
     "timestampDriftTolerance": 300000
   }
}

Use Umbraco DB

The UseUmbracoDB toggles whether we register our implementation of IFidoCredentialRepository and runs the migration adding the credentials table to the current umbraco database.

Set this to false, and register your own implementation if you want to use a different database for the users credentials.

Frontend

The frontend is built using node 16 Navigate to src/Our.Umbraco.Passless/UI and run the following commands:

npm i
npm run build:dev
npm run dev

Now you're ready to work on the frontend.

NOTE: the output is overwritten when building / debugging the website, run above commands after starting the build

Use the following command to generate a production-ready build:

npm run build

Special thanks to:

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.5 239 4/12/2023
0.0.4 236 3/5/2023
0.0.2 273 1/29/2023
0.0.1 274 1/28/2023

- Enforced Attestation, to detect passkeys signins.
     - On passkey sign ins don't persist credential IDs due to windows hello bug
     - Minor TS type fixes
     - Update NPM packages
     - Hide the login form during login, can be shown with the "login with username" button
     - Added some danish translations