Files
nixos-config/work/himmelblau.nix
T
jory f489259af9
CI / Flake check (aarch64-linux) (push) Failing after 20m53s
CI / Flake check (x86_64-linux) (push) Failing after 3m20s
CI / Pre-commit checks (x86_64-linux) (push) Failing after 2m44s
feat: Add fingerprint scanner support and modularize work configurations
- Add fingerprint.nix hardware module with TOD driver support
- Create separate laptop-work configuration with Cisco, Himmelblau, and MDATP work modules
- Move work-specific modules from shared to laptop-work profile
- Change work module enable defaults to false for better security-by-default
- Add MDATP support with enhanced modular structure
2026-07-19 10:21:03 +02:00

52 lines
1.5 KiB
Nix

{ config, lib, pkgs, inputs, ... }:
# Himmelblau: Microsoft Entra ID authentication for Linux
#
# Authenticates Linux users against the digistate.nl Entra ID tenant.
# Users log in with their Entra ID credentials via OIDC Device Authorization
# Grant flow (browser-based) or the native PAM orchestrator.
#
# Requires:
# - A working Entra ID tenant with digistate.nl as a verified domain
# - An OIDC app registration (Himmelblau client) in the tenant
# - Network connectivity to login.microsoftonline.com
#
# References:
# - https://himmelblau-idm.org/docs/
# - https://github.com/himmelblau-idm/himmelblau
let
cfg = config.work.himmelblau;
in {
imports = [
inputs.himmelblau.nixosModules.himmelblau
];
options.work.himmelblau = {
enable = lib.mkEnableOption "Himmelblau Entra ID authentication" // {
default = false;
};
};
config = lib.mkIf cfg.enable {
services.himmelblau = {
enable = true;
settings = {
domain = [ "digistate.nl" ];
# Uncomment and set to Entra ID group Object IDs or names to
# restrict which users can authenticate:
# pam_allow_groups = [ "ENTRA-GROUP-GUID-HERE" ];
};
};
# Himmelblau registers an NSS module (system.nssModules) for user/group lookups,
# which requires nscd to be enabled. Keep it on.
# services.nscd.enable = lib.mkForce false;
# Expose the aad-tool CLI for diagnostics and enrollment
environment.systemPackages = [
inputs.himmelblau.packages.${pkgs.system}.aad-tool
];
};
}