Heimdall is a centralized identity-management system. It answers one question for every system that delegates to it: who is this caller, and what are they allowed to do?
It has two parts: the Heimdall API, built with ASP.NET Core on .NET 10, and Heimdall UI, a Flutter application that drives it.
One scope per client system
Each client system gets its own scope. Its owners, users, applications and permissions live inside that scope and stay isolated from every other one.
Persons and applications
Manage human identities as persons, and other systems as applications — a non-human identity that belongs to one scope.
Permissions in the token
A scope can define its own permissions. Those flagged IncludeAsJwtClaim are
added to the JWT issued to people signing in to that scope.
Several ways to sign in
Email and password, Google Sign-In where a scope enables it, and optional two-factor authentication with an authenticator app, email, or both.
One UI, four targets
Heimdall UI is a single Flutter codebase that ships to the web, Windows, Linux and Android. What each person sees follows their role.
Open source
The default branch of both code repositories is under the Artur Rios Attribution License. The licence file has the terms.