この記事はUEC2アドベントカレンダー2025の11日目の記事でした。

自己紹介

初めまして、21のぼいどと申します。
アドカレを盛大に遅刻しており申し訳ありません。なんとか年内には間に合いました...書いてるうちに年を超えてしまいました

はじめに

一般の皆さんのお家には、ルータやサーバーなど色々な機材が稼働しているかと思います。 複数人でルータやサーバの管理をしたい時などで、誰がいつどの操作をしたのかが共有アカウントだとわからなくなってしまうというような問題はありませんか?あとは、新しく参加してきた人に個別にアカウント作成していったりするのが大変とか。 こうしたときに、便利になってくるのがRADIUSやLDAP、OIDC等の認証でのSSOです。 あとは、単純に統合認証って楽しくないですか?

今回はAuthentikを活用して自宅でのルータやサーバなどでで複数ユーザを統合管理するための方法をご紹介します。

今回の全体像

今回作成する検証環境全体の流れは以下の図の通りです。

Authentik

AuthentikはKeycloakのようなセルフホストできるIDaaSです。Keycloakでいいじゃないかと思うかもしれませんが、このサービスの便利なところは多くのプロトコルをサポートしているところで、特にRADIUSやLDAPに対応しているところです。

Keycloakを使おうとする場合、すでにあるLDAPサーバからユーザをFederateしてLDAPのクライアントからはLDAPサーバにそのまま接続することが多いかと思います。

Authenthikのすごいところは、Authentikにユーザを作るとAuthentik自体がLDAPやRADIUSなどのプロバイダーとして動作してくれます。Keyclaokにも似たような機能はありますが、Authentikには最初からRADIUSやLDAPなど様々なProviderが組み込まれているので容易に連携が可能です。

導入

いくつか方法はありますが、今回はk3sで構築したKubernetes Cluster上にデプロイする方法を取りました。
helmでインストールできるのでかなり手軽です。

まずは設定のためのhelm valueファイルを用意します。secret_keyやpassword、ドメインなどは仮のものなので適切に考えて、values.yamlで更新してください。 今回は、あらかじめtraefikがk3sに入っているのでそれを使ってますが、必要に応じてingress classやcontrollerを導入してあげてください。

これだけでインストールができます。あとは、すべてのpodが起動するのを待てばOKです。Readyが1/1になってるはずです。

ここまでできたら、あとは以下のURLにログインしてセットアップを行います。

http://authentik.k1h.dev/if/flow/initial-setup/

セットアップ時にakadminというデフォルト管理者ユーザのパスワードなどを設定してあげます。 設定が完了すると以下のような画面に遷移します。

Image

Property Mappingの作成

Providerを設定する前に、Propety Mappingの設定をしておきます。 これはradiusサーバーでユーザの権限に応じてカスタムの応答をするために必要です。

今回検証で利用するYAMAHA RTX1220のドキュメントをよくみてみると、