はじめに
弊社はエンタープライズ向けHRアプリケーションを提供する企業です。エンタープライズ向け、という関係上、認証ではSAML SSOのニーズが高く、弊社で提供するアプリケーションも軒並みSAMLに対応しています。
SAML対応機能の開発やトラシューをするうえで、手元でサクッとIdPを構築出来たら便利だな、と思い、Dockerを使ってSAML IdP機能を持ったOSSであるKeycloakを手軽に構築する手順をまとめました。
Windows環境において、WSL2のセットアップと、WSL2上でのDockerの構築設定を説明した記事も紹介します。
(Windows向け)WSL2の設定とDocker Desktopの設定
上記記事の、windows 10のバージョンを2004以降に上げるから、Docker Desktopのインストールまでの手順を完了します。
これにより、WSL2の設定と、DockerコンテナをWSL2上のLinux VMで動作させる設定が完了します。
KeycloakをDockerで立ち上げる
JBossが用意しているDocker ImageがDocker Hubにありますので、こちらを使うことで一瞬でKeycloakを立ち上げることが可能です。
コマンドラインで以下のコマンドを実行します。
docker run -d -p 18080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin --name keycloak jboss/keycloak
Docker DesktopのDashboard上でも確認できます。
それぞれのオプションは以下のように対応します。
- pオプション: ポート
- 例では18080ポートで起動
- eオプション: 環境変数
- KEYCLOAK_USER, KEYCLOAK_PASSWORDはKeycloakの管理者ユーザーの設定
- nameオプション: コンテナ名
Keycloakの管理画面から設定を行う
以下URLからKeycloakの管理画面にアクセスできます。
http://localhost:18080/auth/admin/
また、ファイアウォール等のネットワーク設定が適切であれば、ローカルネットワーク上の他の端末から、ローカルIPアドレスで接続してもらうことも可能です。
docker run時に与えたID/password
でログインできます。先述の例ではadmin/admin
です。
後は以下記事などを参考に、IdP側/SP側の設定を行ってください。
https://qiita.com/katakura__pro/items/1e65e0bde7fda75332a1
最後に
この記事で紹介したことは、Docker利用環境のセットアップと、公式KeycloakイメージからのKeycloakの立ち上げにすぎません。
が、IdPの構築、であったり、Keycloakの構築、というググり方をすると、Dockerを使わない結構めんどくさいやり方が出てくることが多いように感じました。
またDockerという言葉は知っていても、IdPの構築、と結び付けられなかったり、Docker環境を作るのが大変そうだな……と考えて諦める方もいるかと思い、一連の流れとして記事にいたしました。
参考になれば幸いです。
参考URL