Keycloak の使い方

こちらを参考にしました。
[Get started with Keycloak on Docker](https://www.keycloak.org/getting-started/getting-started-docker)

Docker でサーバーを立て、Realm の作成、User の作成を行います。

Realm: myrealm
User: scott

## 前提
Port 8080 を使うので、他のソフトが 8080 を使わないようにして下さい。

確認方法

```bash
sudo lsof -i :8080
```

## Docker でサーバーを起動

```bash
docker run -p 8080:8080 -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:26.2.1 start-dev
```

## ブラウザーでアクセス

次にアクセスすると、リダイレクトされます。

http://localhost:8080/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/ee70eb0f-10a8-47e6-9b43-47c5721795d0.png)

Username: admin
Password: admin
でログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/a935025b-f0a9-48e2-8f8f-58f282912780.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/2267622c-5f50-41f5-b085-02471d5b4572.png)

## Realm の作成

Manage realms -> Create Realm

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/1b328c25-6628-4ca9-9072-33358174604b.png)

Realm name を入れて　Create をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/4b506778-0e45-4f6f-bad9-78002e15e419.png)

myrealm が current realm になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/d4c9230b-0e29-482d-9bf4-d48974782e68.png)

## User の作成

Users をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/973ade0d-0425-4e64-833e-58ca950bfb76.png)

Create new user をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/7a1d4d0c-b0e0-4b71-afe9-3c83b162d8b4.png)

User Name を入れてクリック

Save をクリック

作成されたことを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/3870fe6d-0b69-4de3-ae83-2bae4e5b0208.png)

パスワードの設定

Credentials -> Set Password

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/043066d7-770f-4a35-8ad9-1945285756d9.png)

Temporary は Off にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/fef3b04a-ca90-40a1-8d7d-1022fcbd9635.png)

Admin から Sign Out する

## 作成した User で Sign In

次に接続

http://localhost:8080/realms/myrealm/account/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/fa1eec74-0faa-4908-8933-632543402975.png)

Email アドレスの入力を求められます。
scott@test.com などと入れます。

次回の Sign In から、次のような情報が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/735bd1f2-c5d7-4e70-80a9-5a93e60e675b.png)

## 参考

Docker の状況

```text
$ docker ps
CONTAINER ID   IMAGE                              COMMAND                   CREATED       STATUS          PORTS                                                             NAMES
3779c24dc495   quay.io/keycloak/keycloak:26.2.1   "/opt/keycloak/bin/k…"   2 hours ago   Up 23 minutes   8443/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 9000/tcp   sleepy_booth
```

コンテナ の停止

```bash
docker stop 3779c24dc495
```

コンテナの確認

```text
$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                   CREATED       STATUS                        PORTS     NAMES
3779c24dc495   quay.io/keycloak/keycloak:26.2.1   "/opt/keycloak/bin/k…"   2 hours ago   Exited (143) 32 seconds ago             sleepy_booth
```

コンテナの起動

```bash
docker start 3779c24dc495
```