ubuntu/LinuxMintでkeycloakを利用してDocker環境でSSOを試しました

1.概要

SAML(認証)とOauth(認可)はどちらも難しい。今回、SAMLにチャレンジしました。ネットで調べて、keycloakを利用することでlocal環境でSSO(シングルサインオン)が実現できるので試してみました。keycloakサイトにdockerを利用した簡単なSAML環境構築事例があり、仕組みを経験できます。これを実際に試してみたので、その内容を記述します。

2.詳細

keycloakサイトのGetStartedからGetting startedのDockerを選択します。Docker環境で試すことができるので、Dockerを導入して確認をします。以前、この資料を利用して、Ubuntu 20.04で確認をしました。今回はLinuxMint 22.3を利用します。
利用する機器は以下のとおりです。

HW: i3-7100, Memory 16GB, SSD 256GB
SW: LinuxMint 22.3

参考資料(Get started with Keycloak on Docker)に沿って作業します。

(1) Before you start

Docker環境を導入します。

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable"
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
$ sudo gpasswd -a $USER docker
$ docker --version
$ docker compose version

(2) Start Keycloak

コンテナ起動は1行だけです。

$ docker run -p 127.0.0.1:8080:8080 -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:26.6.4 start-dev

Listening on: http://0.0.0.0:8080
が表示されると起動完了です。

これ以降はブラウザ(Firefox)で複数タブを利用します。その内容を記載ます。
参考資料内にURLのリンクがあります。

(a) Sign in to Keycloak
 http://localhost:8080/realms/master/protocol/openid-connect/auth
(b) Account Console 
 http://localhost:8080/realms/myrealm/protocol/openid-connect/auth
(c) Test Application 
 https://www.keycloak.org/app/

(3) Log in to the Admin Console

「(a) Sign in to Keycloak」からログインします。

Username=admin, Password=admin です

(4) Create a realm

「(a) Sign in to Keycloak」にログイン後、表示されたmaster realmで作業します。

左側上方のMagage realmsをクリックします
青色のCreate realmボタンをクリックします
Realm nameにmyrealmを入力後、青色のCreateをクリックします
登録されました

(5) Create a user

「(a) Sign in to Keycloak」で作業します。

左側中断のUsersをクリックします。
青色のCreate new userをクリックします
Username=myuser
Emailは入力しません
First name=foo
Last name=bar
を入力して、青色のCreateをクリックします

上方のCredentialsタブを選択します
青色のSet passwordをクリックします
Password=mypassword
Password confirmation=mypassword
TemporaryをOffに設定して、
Saveをクリックします。
更に、赤色のSave passowrdをクリックします
登録されました

(6) Log in to the Account Console

「(b) Account Console」からログインします

Username=myuser, Password=mypassword です
Email欄がエラーになるので、myuser@localhostを入力して、submitします
ログインできました

(7) Secure the first application

「(a) Sign in to Keycloak」から作業します

左側上方のClientsをクリックします
青色のCleate clientをクリックします
Client ID=myclientを入力して、Next
次の画面もNext
Valid redirect URIs = https://www.keycloak.org/app/*
Web origins         = https://www.keycloak.org
を入力後、save

「(c) Test Application」を開きます

Keycloak URL = http://localhost:8080
Realm = myrealm
Client = myclient

を確認後、Saveをクリックします

これで試験ができる環境ができました

(8) 試験1

「(b) Account Console」でログインすると、「(c) Test Application」もログインできる検証

「(b) Account Console」と「(c) Test Application」のSign outを確認します
「(b) Account Console」で myuser/mypasswordでログイン
「(c) Test Application」でSign inボタンを押すとすぐにログインできます

(9) 試験2

「(c) Test Application」でログインすると、「(b) Account Console」もログインできる検証

「(b) Account Console」と「(c) Test Application」のSign outを確認します
「(c) Test Application」でSign inボタンを押して、myuser/mypasswordでログイン
「(b) Account Console」はログインされています

3.所見

この説明資料に従って確認をすると、SSOを実際に体験できます。簡単に動作確認でき、keycloakを理解するにはとても良い資料です。しかし、実務上の設定の場合、セキュリティ面を考慮する必要があり、とても難しく簡単ではありません。

参考

[外部サイト参照]

コメント

過去30日間に良く読まれた記事

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

Windows95/98のPCゲームをUbuntu/LinuxMintの最新PCで楽しむ方法 ( KVM / Wine / dosbox-x / midi )

LinuxMint/ubuntuにWine 11導入を試しました ( LinuxMint 21.3 / 22.3 ubuntu 22.04 / 26.04 Wine 11.0 / 11.6 / 11.8 / 11.13 )