keycloakを利用してlocal環境でSSOを試しました
1.概要
OAuthの検証ができたのでSAMLにチャレンジしました。ネットで調べて、keycloakを利用することでlocal環境でSSO(Single Sign On)が実現できるとわかり、試してみました。その内容を記述します。
2.詳細
Ubuntu-20.04環境で、Docker版のKeyCloakを利用しました。簡単に検証できます。実務で使うのではないので、SSOの雰囲気を知るにはKeyCloakを使って見るのは良さそうです。
参考資料に沿って、起動からSSOの簡単な検証まで実施できます。
Ubuntu-20.04.6に標準のDockerを導入した環境を前提とします(本ブログ内に多数例があります)。
(a) Start Keycloak
terminalを開いてコンテナを起動します
$ docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:24.0.4 start-dev
下記注意書きが最後に表示されます。
Running the server in development mode. DO NOT use this configuration in production.
(b) Log in to the Admin Console
Ubuntu-20.04のFirefoxを利用します
http://localhost:8080/admin
Username=admin
Pasword=admin
でloginします。
(c) Create a realm
Keycloadと記述された入力フィールドをクリックして、Create realmをクリック
Realm nameにmyrealmを入力して、Createをクリック
(d) Create a user
左側のメニューからUsersを選択して、Create new userをクリック
Username=myuser
Email=myuser@localhost
Firstname=Foo
Lastname=Bar
Createをクリック
表示内容を確認して、Saveをクリック
Detailsの隣のCredentialsのタブを開く
Set passwordをクリック
Password=password
Password confirmation=password
Saveをクリック
Save Password(赤い表示)をクリック
(e) Log in to the Account Console
もう1つFirefoxを起動します
http://localhost:8080/realms/myrealm/account
Username=myuser
Password=password
でloginすると、新しいpassword設定画面になります。
新しいpasswordを設定して、Submitします。
Personal infoを確認してSaveをクリック
(f) Secure the first application
最初のFirefoxに戻ります
左側のメニューのClientsを選択
Create clientをクリック
Client ID=myclient
Nextをクリック
次の画面は何も変更せずにNextをクリック
Valid redirect URIs=https://www.keycloak.org/app/*
Web origins=https://www.keycloak.org
Saveをクリック
内容を確認して、Saveをクリック
(g) 試験
試験を実施できる環境設定ができたので、試験をします。
更にもう1つFirefoxを起動します
https://www.keycloak.org/app/
表示内容は
Keycloak URL=http://localhost:8080
Realm=myrealm
Client=myclient
を確認して、Saveをクリック
Sign inをクリック
Hello, Foo Bar
が表示されます。
認証サイトは2個利用できるようになりました
2つめのFirefox
http://localhost:8080/realms/myrealm/account/
3つめのFirefox
https://www.keycloak.org/app/
(h) SSO確認
2つめのFirefoxでSign outします。右端のFoo Bar => Sign out
3つめのFirefoxでSign outします
3つめのFirefoxでSign inします
Username=myuser
Password=新しく設定したパスワード
Hello,Foo Barが表示されます
2つめのFirefoxを参照するとSing inされています
今度は手順を逆にします
3つめのFirefoxでSign outします
2つめのFirefoxでSign outします。右端のFoo Bar => Sign out
2つめのFirefoxでSign inします
Username=myuser
Password=新しく設定したパスワード
3つめのFirefoxでSign inをクリックすると、User/Password設定せずにSign inします
(i) 終了
terminalでCtrl-cでコンテナを終了します
3.実際に利用するには
設定ガイドがあります。やるべきことは多そうです。
https://www.keycloak.org/guides#server
参考
[外部サイト参照]
・Docker Keycloak
コメント
コメントを投稿