Docker ComposeとNginxを活用したKeycloak SSO
(du.nkel.dev)Keycloak SSO設定: Docker ComposeとNginxを使用
- Keycloakはオープンソースであり、主要なSSOプロトコルと互換性のある信頼できるアイデンティティおよびアクセス管理ソリューションである。
- Docker Composeを使った設定は複雑ではないものの直感的ではないため、設定手順を要約して提供する。
概念
- Nginxを中央リバースプロキシとして使用し、localhost経由で個別のサービスへトラフィックを転送する標準的な構成を採用する。
- 単一ホストのリソースを共有しつつ、環境をできるだけ分離する経済的な構成と見なされる。
準備事項
- 基本的なツール(SSH、LinuxがインストールされたVM、ドメインまたはサブドメイン)が必要である。
- Docker rootless設定のために、パスワード不要の新しいnon-rootユーザー
keycloakを作成し、/etc/subuidおよび/etc/subgidの範囲を更新し、Docker rootlessをインストールして自動サービス起動を構成する。
Keycloak設定
- 新しく作成したkeycloakユーザーでログインし、永続データとDockerファイルのためのディレクトリを作成する。
- 公式ドキュメントを参照して
docker-compose.ymlを作成し、.envファイルに機密情報や変更されやすい情報を入力する。
ローカルでテスト
- Docker Composeスタックをテストし、VMへのリバースSSHトンネルを作成したうえで、ブラウザでKeycloakのウェルカム画面を確認する。
Nginx設定
- システムのリバースプロキシとしてNginxを設定し、Keycloakサービス用の新しいNginx
.confファイルを作成する。 - ドメインレジストラで、VMのIPにDNSクエリを転送するようAレコードを追加する。
デバッグ
.tld.comを開いてadminユーザーでKeycloakにログインし、Docker ComposeのログとNginxのアクセスログおよびエラーログを確認する。- 必要に応じてKeycloakデータベースを確認する。
Dockerfileを使ったカスタムビルド
- quay.ioの事前ビルド済みイメージを使う代わりに、Dockerfileを使用して独自のイメージをビルドする。
- Docker Composeを再起動してイメージをビルドし、サービスを開始する。
結論
- Rootless Dockerの背後で、システムNginxリバースプロキシを用いてKeycloakサービスを実行している。
- Dockerコンテナの自動更新、Keycloakサービスへのログインとメールの追加、レルムの追加、テーマの追加などが次のステップである。
GN⁺の意見:
- セキュリティの重要性: 現在のWebはセキュリティ関連の脆弱性に追いつくのが難しいため、Keycloakのような信頼できるソリューションを使うことが重要である。
- 効率的なアーキテクチャ: 単一ホストでリソースを共有しながら環境を分離する方式は、コスト効率が高く管理しやすい。
- カスタマイズ性: Dockerfileを使ったカスタムビルドは、Keycloakを自分の要件に合わせて調整できる柔軟性を提供する。
1件のコメント
Hacker Newsの意見
Autheliaを選んだユーザーの意見:
JetBrains HubとKeycloakの使用経験があり、Dexを選んだユーザーの意見:
OpenID Connectサーバーの比較表を作成したユーザーの意見:
Keycloakのセキュリティ問題に関するユーザーの意見:
AWS ECSでKeycloakを実装した経験を共有したユーザーの意見:
Keycloakifyについて好意的に言及したユーザーの意見:
AutheliaとKeycloakを比較したユーザーの意見:
Keycloakを使った経験を共有したユーザーの意見:
Zitadelを使ってみたユーザーの意見:
Keycloak利用の難しさを訴えたユーザーの意見: