Keycloakをインストール・設定する

# 環境
- JDK 8以上
  - 事前にインストールが必要です
  - 環境変数 `JAVA_HOME` も設定しておいてください
- Keycloak 11.0.3
- macOS Big Sur 11.1（Windowsでも手順はほぼ同様です）

# ダウンロードとインストール
[公式ページ](https://www.keycloak.org/downloads.html)から、[Distribution powered by WildFly]のZIPファイルをダウンロードします。そして、ローカルの適当なフォルダに展開するだけです。

![スクリーンショット 2021-01-22 15.03.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/823d84cd-9dc7-d9a1-0468-588e11b7564b.png)

# 起動
`Keycloakを展開したフォルダ/bin` の中の `standalone.sh` (Windowsの場合は `standalone.bat` )で起動します。

デフォルトのポート番号は8080です。ポート番号を変更するには `-Djboss.http.port` オプションを付加します。

```bash:ポート番号9000で起動する例
$ cd bin
$ ./standalone.sh -Djboss.http.port=9000
```


# 管理者名・パスワードの設定
Webブラウザで http://localhost:9000 （ポート番号は起動時に指定したものにしてください）を開き、画面左側の[Administration Console]に、管理者のユーザー名・パスワード（今回は共に `admin` ）を設定して[Create]をクリックします。

![スクリーンショット 2018-10-21 12.13.57.png](https://qiita-image-store.s3.amazonaws.com/0/58650/a8076f7d-283f-bedc-f391-5a87d046327a.png)

成功すると[User Created]と表示されます。

![スクリーンショット 2018-10-21 12.22.58.png](https://qiita-image-store.s3.amazonaws.com/0/58650/6b2e8e21-ab49-9712-ce09-0c4b509cf20a.png)

[Administration Console]の部分をクリックすると管理者ログイン画面が表示されます。

![スクリーンショット 2018-10-21 12.24.35.png](https://qiita-image-store.s3.amazonaws.com/0/58650/fe795aa2-dd7e-7201-4a1b-6db665758bf4.png)

設定したユーザー名・パスワードを入力して[Log In]をクリックします。


# レルムの作成
画面左上の[Master]のあたりにマウスカーソルを合わせると出てくる[Add realm]をクリックします。

![スクリーンショット 2018-10-21 12.26.39.png](https://qiita-image-store.s3.amazonaws.com/0/58650/7f7ad074-eed1-49cd-b7ef-6f64c7974110.png)

[Name]に任意のレルム名（今回は `hello-api` ）を入力して[Create]をクリックします。

![スクリーンショット 2020-12-15 13.47.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/bd8db2e1-f496-74a9-9285-07f89026994c.png)

# ユーザーの設定
画面左側の[Users]をクリックし、画面右側の[Add user]をクリックします。

![スクリーンショット 2020-12-15 13.48.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/d2c45687-c05a-1b0e-7285-649b4642a780.png)

[Username]に `user` と入力して [Save] をクリックします。

![スクリーンショット 2020-12-15 13.49.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/aa68f074-fec4-c5f9-1f5d-71848e3ae8f8.png)

[Credentials]タブを開き、[Password]と[Password Confirmation]にパスワードを設定（今回は共に `user` ）し、[Temporary]を[OFF]にして[Set Password]をクリックします。

![スクリーンショット 2020-12-15 13.50.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/52146479-ec27-7527-3c49-1826aa11546f.png)

# スコープの設定
画面左側の[Client Scopes]をクリックし、画面右側の[Create]をクリックします。

![スクリーンショット 2020-12-15 13.55.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/a8b41676-0ed4-0be6-0f22-1e5905d574a3.png)

[Name]にスコープ名（今回は `hello` ）と入力して[Save]をクリックします。

![スクリーンショット 2020-12-15 13.56.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/e0c92bc6-4d53-9d4c-5b3b-c059eea4d1c1.png)

# クライアントの設定
画面左側の[Clients]をクリックし、画面右側の[Create]をクリックします。

[Client ID]にclient_id（今回は `hello-client` )
と、[Root URL]にクライアントのルートURL（今回は `http://localhost:8080` ）と入力して[Save]をクリックします。

![スクリーンショット 2020-12-15 13.57.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/4ad8613a-b1fa-c0e9-3a42-db41580842fc.png)

[Settings]タブを開き、[Access Type]を[confidential]、[Valid Redirect URIs]は `http://localhost:8080/*` と入力して、[Save]をクリックします。

![スクリーンショット 2020-12-15 13.58.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/d0ccae83-3d5f-07a9-7c5e-6bf1d7e21e69.png)

![スクリーンショット 2021-03-23 15.12.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/5e30b52b-d6cf-dbb4-502f-97be1db7b42a.png)

[Client Scopes]タブを開き、[Default Client Scopes]で追加したいスコープ（今回は `hello` ）を選択して[Add selected]をクリックします。選択したスコープが[Assigned Default Client Scopes]に移動すれば成功です。

![スクリーンショット 2020-12-15 14.00.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/d0b0df6c-6fed-dfcc-d15f-2853990d3bc8.png)