almalinuxにkeycloakをインストールしてみる

シングルサインオン(SSO)というやりかたがあり、クラウドサービスを使って導入も可能ですがVPSなど自身のサーバーにソフトウェアをインストールすることも可能みたいです。主に使われているのがKeycloakというソフトになります。今回はこれをインストールしてみたいと思います。
参考サイト
- Keycloakのインストール方法をわかりやすく手順化してみた
- Install Keycloak 4.8.3 on CentOS 7
- AmazonLinux2 に Nginx で SSL/TLS 終端構成で Keycloak をインストールする
気づいた事
keycloak公式サイトを見ていただくとわかるのですが、公式では最新が22となっており、↑ででてきているバージョンは相当古いのではないかなと思います。
そして、参考サイトではstandalone.shというのがでていますが最新ではそんなシェルは存在しません。
バージョン17以降はstandalone.shは存在しない
調べてみると16まではstandalone.shがありましたが17以降はありませんでした。
今回keycloakは初めて使うので、できれば参考サイトのようにしたいので16のバージョンを使って見たいと思います。
インストール環境
- OS:AlmaLinux8/9
- JAVA:8
- 仮想環境:vagrant+バーチャルボックス
- keycloak:keycloak-16.1.1
- ポート:8080(http)/8443(https)
- インストール先:/usr/local/bin
- 仮想マシンIP:192.168.1.201
- ユーザー名:admin
- パスワード:admin
最終ゴール
SSOの認証ができるアプリなので、ゴールとしてはSSLでの認証かなと思います。ただそれまでにクリアする課題としては
- 最新バージョンで動かす
- 8443ではなく443にする
- 認証のやり方不明
などがあります。気長にやっていこうと思います。
インストール
JAVAと本体のインストールをします
JAVAのインストールをします
[c]
[root@localhost ]# dnf install -y java-1.8.0-openjdk
[/c]
keycloak-16.1.1のインストール
[c]
[root@localhost ]# cd /usr/local/bin/
[root@localhost bin]# wget https://github.com/keycloak/keycloak/releases/download/16.1.1/keycloak-16.1.1.zip
[root@localhost bin]# unzip keycloak-16.1.1.zip
[root@localhost bin]# mv keycloak-16.1.1 keycloak
[/c]
これでインストール完了です。
サービスファイルの作成
[c]
[root@localhost bin]# vi /etc/systemd/system/keycloak.service
[Unit]
Description=Jboss Application Server
After=network.target
[Service]
Type=idle
Environment=JBOSS_HOME=/usr/local/bin/keycloak/ JBOSS_LOG_DIR=/var/log/keycloak "JAVA_OPTS=
-Xms1024m -Xmx20480m -XX:MaxPermSize=768m"
User=keycloak
Group=keycloak
ExecStart=/usr/local/bin/keycloak/bin/standalone.sh -b=0.0.0.0
TimeoutStartSec=600
TimeoutStopSec=600
[Install]
WantedBy=multi-user.target
[/c]
ユーザーの作成や権限変更
[c]
[root@localhost bin]# mkdir /var/log/keycloak
[root@localhost bin]# useradd --system --user-group keycloak
[root@localhost bin]# chown -R keycloak:keycloak /usr/local/bin/keycloak
[root@localhost bin]# chown -R keycloak:keycloak /var/log/keycloak
[root@localhost bin]# chmod -R g+w /usr/local/bin/keycloak
[root@localhost bin]# chmod -R g+w /var/log/keycloak
[/c]
サービス起動
[c]
[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl enable keycloak
[root@localhost bin]# systemctl start keycloak
[/c]
アクセスしてみる
起動成功していればhttp://IPアドレス:8080/auth/にアクセスしてみます
ローカルホストからアクセスしてね

keycloakにアクセスするとlocalhostからアクセスしてねとでます。サーバーなどの場合はできないのでコマンドでするしかないです
管理者の作成
[c]
[root@localhost bin]# pwd
/usr/local/bin
[root@localhost bin]# cd keycloak
[root@localhost keycloak]# pwd
/usr/local/bin/keycloak
[root@localhost keycloak]# bin/add-user-keycloak.sh -r master -u admin -p admin
Added 'admin' to '/usr/local/bin/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user
[root@localhost keycloak]#
[root@localhost keycloak]# systemctl restart keycloak
[/c]
管理画面に再度アクセスしてみる

http://IPアドレス:8080/auth/ にアクセスすると、先ほどと変わった画像になります。
にアクセスをしてみます
ログイン画面

ログイン画面が表示されるので、先ほど作ったユーザー名とパスワードで入って見ます
日本語に変更

無事にログインできました。今度は言語を日本語にしてみたいと思います。
Theme タブへ
Themeタブの一番下にあるInternationalization Enabledをオンにします

そうすると言語が選べるので日本語にしてsaveを押します

再度ログイン
一度ログアウトして再度ログインすると日本語でログインできるようになります

HTTPSでアクセス
https://IPアドレス:8443/auth/admin
でアクセスするとみることができます。
まとめ
今回はここまでとなります。次は最新バージョンで試してみたいなと思います。その後認証でどう使えるかなどみてみたいと思います
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS