Skip to content

feat(homeserver): Authelia で SSO を入れる - #550

Merged
gapul merged 1 commit into
mainfrom
feat/homeserver-sso
Sep 2, 2026
Merged

feat(homeserver): Authelia で SSO を入れる#550
gapul merged 1 commit into
mainfrom
feat/homeserver-sso

Conversation

@gapul

@gapul gapul commented Sep 2, 2026

Copy link
Copy Markdown
Owner

なぜ Authentik ではないか

Authentik は設定をデータベースに持ち、Web UI のフローエディタで編集する。宣言できない。uptime-kuma を捨てた理由と同じ形 (監視リストが誰もレビューできない SQLite に入っていた) をもう一度作ることになる。

Authelia は設定が YAML 1 枚、ユーザーもファイル、秘密は /var/lib/secrets の下で完結する。差分が git に出るし、まっさらな箱でも同じ形に戻る。

何を front するか

sites の表に auth = true を足し、mkVhost がそれを見て forward_auth を差す。掛けたのは 11 件だけ。

掛けた: dash search money files tube esphome nodered comfy tools status archive

いずれも認証を一切持たず、tailnet の中にいることだけが境界だったものmoney (fava) は「fava 自体はログインを持たないので、境界はここの vhost が tailnet アドレスにしか生えていないこと。外に出すなら認証を足すこと」とコメントに書いてあった通りのもので、files は restic リポジトリの中身が見える。

掛けなかったものと理由:

  • 機械が叩くエンドポイントtrack (Dawarich が OwnTracks の POST を受ける)、obsidian (CouchDB LiveSync)、anki (同期プロトコル)、dav (CalDAV)、ntfycache (attic)、shell (atuin)、sync (Syncthing API)、dns2。ここに人間向けのログイン画面を挟むと、iPhone の位置ログもビルドキャッシュも通知も黙って止まる
  • 独自ログインを持ち、ネイティブアプリが直接叩くものjellyfin navidrome git paperless rss roms games。前段にログイン画面を置くとアプリと git が壊れる
  • vault (Vaultwarden) — 保管庫を SSO の後ろに置くと、SSO のパスワードを思い出せないときに保管庫が開けない循環になる
  • home (Home Assistant) — 独自認証とアプリ連携があるので、front させるならネイティブ OIDC で繋ぐほう
  • cal poll split — cloudflared 経由なので Caddy を通らない。方針として対象外

auth vhost 自身には掛けていない。掛けると認証を求める先が自分になって永久に回る。

二要素

two_factor を既定にした。tailnet にいることを本人性の根拠にしない、という判断 (tailnet に載る端末が増えるほどその前提は弱くなる)。緩めるなら access_control の policy を one_factor にする、1 箇所。

確認

nix eval で生成された Caddy 設定を実際に見た。money / files には forward_auth 127.0.0.1:9092 が付き、track には付かず、auth 自身にも付いていない。homeserver の toplevel も評価が通る。

反映前に手作業が要る

/var/lib/secrets/authelia/ に 4 つのファイルを置く必要がある (README の表に追記済み)。3 つは openssl rand -hex 32、残りは argon2id ハッシュを持つユーザーファイル。これを置かずに切り替えると、対象の 11 件が全部開かなくなるので、置いてからデプロイすること。

TOTP の登録リンクは SMTP が無いのでファイルに出る: sudo cat /var/lib/authelia-main/notification.txt

@gapul
gapul merged commit 945b56e into main Sep 2, 2026
5 checks passed
@gapul
gapul deleted the feat/homeserver-sso branch September 2, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant