目次
- Keycloakのイメージ
- Keycloakの実行
- Master Realmの作成
- 子Realm1とユーザーの作成
- アプリケーシの設定
- スコープ、マッパーの作成とクライアントにスコープを設定する
- ユーザー属性の設定
- アクセストークンの内容確認
- Keycloak設定エクスポート
参考サイト
Keycloak Getting Started Guide
Keycloakのイメージ
KeycloakをID Providerとして、RESTfulAPIが動くリソースサーバーを作る。
Realmは、以下のようなイメージになる為、これからは、Master Realm, Realm1, User等を作成する。
Master Realm (アドミン:その他のrealmを管理する)
|-Realm1 (ここでユーザーとアプリケーションを作成する)
| |- User -> Application
|-Realm2 (ここでユーザーとアプリケーションを作成する)
| |- User -> Application
|-Realm3 (ここでユーザーとアプリケーションを作成する)
| |- User -> Application
Keycloakの実行
①Keycloakの実行ファイルから実行する方法
Keycloakをダウンロードして解凍し、bin/standalone.batを実行し、起動する。
https://www.keycloak.org/downloads.html
②dockerからKeycloakを実行する方法
DockerとKeycloakで世界最速OpenID Connectの為、DockerからKeycloakを実行する事にする。
参考サイト:https://www.keycloak.org/getting-started/getting-started-docker
ログインユーザーは、admin/adminになる。
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.1
ポート変更後は以下になる。
docker run -p 8088:8088 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.1
ポート番号変更方法
docker run -p 8088:8088 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.1 -Djboss.http.port=8088
Master Realmの作成
以下リンクを実行し、Keycloakのmaster realmを作成する。
http://localhost:8080/auth/
子Realm1とユーザーの作成
-
ユーザーが最初ログインする為、仮パスワードを設定する必要がある。
-
[Credentials]にて仮パスワードを入力し、セットパスワードを押下する。
ユーザーサインイン
- 作成したRealm1に対しての以下リンクから[Personal Info]をクリックし、作成したユーザーでサインイン出来る。
http://localhost:8080/auth/realms/realm1/account/
アプリケーシの設定
-
最初は、対象のアプリケーションをKeycloakインスタンスに登録することである。
-
Master Realmでサインインし、クライアントを作成する。
-
クライアント名とルートurlを入力し、保存ボタンを押下する。
-
テストの為、KeycloakWebサイトのSPAテストアプリケーション「https://www.keycloak.org/app/ 」を利用する予定にする。
-
KeycloakWebサイトのSPAテストアプリケーションにて、情報を登録する。
https://www.keycloak.org/app/ -
[Sign in]をクリックして、以前に起動したKeycloakサーバーを使用してこのアプリケーションを認証できるようになりる
スコープ、マッパーの作成とクライアントにスコープを設定する
スコープの作成
マッパーの作成
クライアントにスコープを設定
- ①[Clients]にて対象クライアントを選択する。
- ②[Client Scopes]タブにて、[Optional Client Scopes]中の対象スコープを選択し、[Add selected]を押下する。
ユーザー属性の設定
- ユーザー属性の設定には、スコープ作成時指定した[User Attribute]の属性の値をユーザーにセットする事になる。
- [Users]メニューから対象ユーザーを選択し、[Attributes]タブにて、以下を設定し[Add]を押下する。最後に[Save]を押下する。
Key : スコープ作成時指定した[User Attribute]の値
Value : スコープ作成時指定した[Token Claim Name]の値
アクセストークンの内容確認
-
アクセストークンの内容は、Keycloakにて確認出来る。
-
[Clients]メニューから対象クライアントを選択し、[Client Scopes]タブの[Evaluate]タブをクリックする。
-
[Client Scopes]にて対象スコープを選択し、[Add selected]を押下する。[User]に対象ユーザーを選択し、[Evakuate]ボタンを押下する。
-
[Generalted Access Token]タブにて内容が確認出来る。