KeycloakでSAMLログイン検証用のIdPを立ててみる


SAMLでのSSO接続を検証する環境が必要になったので、IdP立てるのに簡単な方法を探したところ、Keycloakが良さそうだった。

Keycloakは多機能で、今後いろいろな学習にも使えそう!

KeycloakをDockerで立ち上げる

Keycloakは開発元でdockerイメージも公開しており、コマンド一発で立ち上がってしまう。

docker run -d -p 18080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin --name keycloak jboss/keycloak

最近新しくなったお仕事PCであるところの Apple Sillicon では残念ながらそのままは起動しなかったので、とりあえずWindows10のDocker Descktop環境でテスト。

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

dockerでサーバが起動したら、ブラウザで管理画面を開きます。
http://localhost:18080/auth/admin/

起動時に指定したユーザ名とパスワードでログインします。

言語設定

日本語で管理画面なども使いたい場合、設定を変更します。

Themes > Internationalization Enabled をカチッとONにします。

Default LocaleをjaにしてSave、右上のメニューから Manage Accountを選択するなどして管理画面に入り直すと表示が日本語になります。

レルムの作成

masterというレルムが作成されますが、これはレルムを作成するためだけのもの。テストなり運用するためのレルムを作成します。

初期レルムが選択されていますがマウスをホバーすると追加のメニューが出てきます。

指定するのは名前だけ。

Keycloakにユーザを追加する

SSOの検証をするために、ログインできるユーザを作成します。
管理>ユーザー から「ユーザーの追加」を選択します。

必要なのはユーザー名のみ

作成されたユーザーのクレデンシャルでパスワードを設定します。

ユーザーでログイン

以下のUrlをブラウザで開いてみます。
http://localhost:18080/auth/realms/dev/account

ログインすると「一時的」でパスワードを設定したために設定が求められました。これでログインできるユーザーを用意することができました。

SAML接続のためのメタデータ

最後に、今回の最大の目的であるところのSAML連携の設定に必要なメタデータを確認します。

レルムの設定 > 一般 > エンドポイント からメタデータを取得することができます。

参考URL