49
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerでKeycloakをサクッと立ててSAML検証環境を構築する

Last updated at Posted at 2021-03-16

はじめに

弊社はエンタープライズ向け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

これにより、以下の通りKeycloakが構築されます。
image.png

Docker DesktopのDashboard上でも確認できます。
image.png

それぞれのオプションは以下のように対応します。

  • pオプション: ポート
    • 例では18080ポートで起動
  • eオプション: 環境変数
    • KEYCLOAK_USER, KEYCLOAK_PASSWORDはKeycloakの管理者ユーザーの設定
  • nameオプション: コンテナ名

Keycloakの管理画面から設定を行う

以下URLからKeycloakの管理画面にアクセスできます。
http://localhost:18080/auth/admin/
また、ファイアウォール等のネットワーク設定が適切であれば、ローカルネットワーク上の他の端末から、ローカルIPアドレスで接続してもらうことも可能です。

image.png
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

49
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?