Skip to main content
Himmelblau is configured through a single INI-style file at /etc/himmelblau/himmelblau.conf. Most settings live in the [global] section; some options can be overridden per-domain in a [domain.example.com] section.

Minimal working configuration

The only strictly required option is domain. A minimal configuration looks like this:
/etc/himmelblau/himmelblau.conf
[global]
domain = example.onmicrosoft.com
pam_allow_groups = f3c9a7e4-7d5a-47e8-832f-3d2d92abcd12
local_groups = wheel docker
OptionWhat it does
domainYour Entra ID tenant domain (the part after @ in UPNs)
pam_allow_groupsComma-separated list of Entra ID group Object ID GUIDs (or UPNs) that can log in
local_groupsLocal Linux groups that enrolled Entra ID users are added to
After changing himmelblau.conf, restart both services for the change to take effect:
sudo systemctl restart himmelblaud himmelblaud-tasks

Configuration sections

[global]

All core settings. See the full configuration reference for every available option. Key options at a glance:
OptionDefaultDescription
domain(from first UPN)Entra ID domain name
pam_allow_groups(all users)Groups/users allowed to authenticate
local_groupsLocal groups added to all Entra ID users
enable_hellotrueWindows Hello PIN enrollment
enable_passwordlesstruePasswordless auth via Microsoft Authenticator
apply_policytrueEnforce Intune compliance policies
join_typejoinjoin (full device join) or register
debugfalseEnable verbose daemon logging

[offline_breakglass]

Optional section to allow cached password authentication when Entra ID is unreachable. See Offline breakglass configuration.
[offline_breakglass]
enabled = true
ttl = 2h

Per-domain overrides

Options marked as domain_specific in the reference can be overridden for a specific domain by adding a section named after the domain:
[global]
domain = contoso.com
pam_allow_groups = <group-guid>

[domain.contoso.com]
mfa_method = PhoneAppNotification

Applying changes

sudo systemctl restart himmelblaud himmelblaud-tasks
To verify the daemon is healthy after a config change:
aad-tool status

Further reading

Full config reference

Every option in [global] with descriptions and defaults.

Entra ID setup

What to configure in the Azure portal before deploying.

PAM & NSS setup

Wire Himmelblau into Linux authentication.

Intune compliance

Device enrollment and policy enforcement.

Build docs developers (and LLMs) love