Keycloakのセットアップ

# 概要

Keycloakアドベンドカレンダー2日目の今回は、Keycloakを試用できるようにセットアップする手順について説明します。複雑な設定などについては言及しません。簡単なので、興味のある方は是非試してみて下さい :slight_smile:

セットアップ手順は以下の通りです。

1. Keycloakのダウンロード
2. サーバーの起動
3. 管理者ユーザーの作成
4. 管理コンソールへのログイン

これに加えて、このページでは、Keycloakを日本語化する方法とアンインストールする方法についても触れます。

なお、詳細については、[Keycloakの各種ガイド](http://www.keycloak.org/documentation.html)を参照してください。NRI OpenStandiaで[ガイドの日本語訳](http://openstandia.jp/oss_info/keycloak/document.html)も公開しています(12月現在、翻訳中です)。

# システム要件

Keycloakを起動するための要件は、以下の通りです。

- Javaを実行可能なOS
- Java 8 JDK
- RAM512M以上
- 1G以上のディスクスペース

# セットアップ手順

Keycloakサーバーを起動し、管理者ユーザーを設定後、管理コンソールにログインするまでの手順について説明します。

## Keycloakのダウンロード

[Keycloakのダウンロードページ](http://www.keycloak.org/downloads.html)からKeycloakの圧縮ファイルをダウンロードします。

## サーバーの起動

ダウンロードしたら、適当なディレクトリに解凍して下さい。`bin`ディレクトリにある`standalone.sh`または`standalone.bat`を実行すると、Keycloakサーバーが起動します。

 - Linux/Unixの場合:

```bash
$ unzip keycloak-3.3.0.CR2.zip
$ ./bin/standalone.sh
```

 - Windowsの場合:

```bat
> unzip keycloak-3.3.0.CR2.zip
> bin\standalone.bat
```

なお、Keycloakの圧縮ファイルには「Wildfly」(RedHat社が中心となって開発されているJava EEコンテナ)が同梱されています。KeycloakはこのWildflyの上で動作します。

<table><tr><td>:warning: デフォルトでは、Keycloakはリモートホストからのアクセスを許可していません。これは、WildFlyのデフォルトの仕様のためです。これを解除するには起動スクリプトに-bオプションで許可するホストのIPアドレスを付加して下さい。「0.0.0.0」の場合は全てのホストを許可します。<br><br><code>$ ./bin/standalone.sh -b=0.0.0.0</code></td></tr></table>

コンソールに以下のようなメッセージが表示されれば、起動は完了しています。

```
14:29:22,241 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
14:29:22,241 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
14:29:22,241 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: Keycloak 3.3.0.CR2 (WildFly Core 3.0.1.Final) started in 12515ms - Started 536 of 858 services (570 services are lazy, passive or on-demand)
```

<table><tr><td>:information_source: サーバーを停止する場合は、コンソールで<kbd>Ctrl</kbd>+<kbd>C</kbd>をクリックして下さい。</td></tr></table>

## 管理者ユーザーの作成

サーバーが起動したら、ブラウザーを開き http://localhost:8080/auth にアクセスします。以下のようなページが表示されます。

|![Screenshot from 2017-10-29 11-03-10.png](https://qiita-image-store.s3.amazonaws.com/0/43869/6880a96e-6cae-c976-d33a-ba46c4847bc3.png)|
|:-:|

Keycloakには、デフォルトで設定された管理者のアカウントが存在しません。まずはそれをウェルカムページで作成する必要があります。作成した管理者アカウントで、ユーザーの作成や認証方式の設定、Keycloakによって保護されるアプリケーションの登録などができます。

> :information_source: localhost にアクセスする場合は、初期管理者ユーザーのみを作成できます。これはセキュリティ対策のためです。また、スクリプト<code>add-user-keycloak.sh</code>を使用してコマンドラインにて初期管理者ユーザーの作成をすることも可能です。詳しくはガイド([Server Installation](http://www.keycloak.org/docs/latest/server_installation/index.html)と[Server Administration](http://www.keycloak.org/docs/latest/server_admin/index.html))を参照下さい。

## 管理コンソールへのログイン

管理者アカウントを作成したら、管理コンソールにログインすることができます。

ウェルカムページの一番下にある「Administration Console」のリンクをクリックします。

|![2017-10-29 11.07.38 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/77ebf05d-2822-e953-87ed-7b514eb8ef96.png)|
|:-:|

ウェルカムページで作成したユーザー名とパスワードを入力します。Keycloak管理コンソールのメインページが表示されます。

|![2017-10-29 11.08.21 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/fc98bd40-3cdb-9e46-bfc8-5e25f1558ea9.png)|
|:-:|

管理コンソール内の設定項目について知りたい場合は、?(クエスチョンマーク)のアイコンにマウスオーバーすると、設定項目を説明するテキストがポップアップ表示されます。

|![2017-10-29 11.09.52 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/bc577273-a979-f713-c0e9-5ffca20bf83e.png)|
|:-:|


# 日本語化

Keycloakは国際化対応しており、日本語にも対応しています。管理コンソールやユーザー・アカウント・サービスを日本語化するには以下の手順を実施します。

「Themes」のタブをクリックし、「Internationalization Enabled」の設定を「ON」にして「Save」ボタンをクリックします。

|![2017-10-29 11.14.46 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/f5a442a1-691f-c684-03ac-8d53486105d2.png)|
|:-:|

いったんログアウトすれば、日本語化は完了のはずですが、おそらくキャッシュなどに起因して日本語化が直ぐに反映されない場合があります。その場合は、右側の「Admin」と書かれたリンクをクリックして、「Manage account」を選択して下さい。

|![2017-10-29 11.17.16 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/e52c54ff-4112-89af-f45e-56de679236f0.png)|
|:-:|

画面上部に言語の設定があるので、クリックして日本語を選んで下さい。

|![2017-10-29 11.29.33 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/7eac22d4-0e0b-ec2a-3ffb-0477e206021b.png)|
|:-:|

これで完了です。確認するために、いったんログアウトして下さい。

|![2017-10-29 11.34.04 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/da505248-6588-10da-5fc8-7ce1c5abad11.png)|
|:-:|

再度ログインしようとすると、ログイン画面に言語を選択するセレクトボックスが表示されます。

|![2017-10-29 11.41.09 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/417ca0ce-9756-e789-55ca-3b475ae8bd40.png)|
|:-:|

ここで日本語を指定してからログインすると、先ほどまで英語だった画面が日本語で表示されるようになります。

|![2017-10-29 11.34.45 からのスクリーンショット.png](https://qiita-image-store.s3.amazonaws.com/0/43869/177e0891-88be-dcf3-c4c0-90a2e3118b68.png)|
|:-:|

# Keycloakのアンインストール

Keycloakのアンインストールに特別な作業は必要ありません。基本的には解凍したディレクトリを削除するだけです。

# 参考資料

 - [Keycloak Documentation](http://www.keycloak.org/documentation.html)
 - [NRI OpenStandia Keycloak日本語ドキュメント - Keycloak 入門編](http://keycloak-documentation.openstandia.jp/master/ja_JP/getting_started/index.html)