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

シングルサインオン(SSO)というやりかたがあり、クラウドサービスを使って導入も可能ですがVPSなど自身のサーバーにソフトウェアをインストールすることも可能みたいです。主に使われているのが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での認証かなと思います。ただそれまでにクリアする課題としては

  1. 最新バージョンで動かす
  2. 8443ではなく443にする
  3. 認証のやり方不明

などがあります。気長にやっていこうと思います。

インストール

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/ にアクセスすると、先ほどと変わった画像になります。

http://IPアドレス:8080/auth/admin

にアクセスをしてみます

ログイン画面

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

日本語に変更

無事にログインできました。今度は言語を日本語にしてみたいと思います。

Theme タブへ

Themeタブの一番下にあるInternationalization Enabledをオンにします

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

再度ログイン

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

HTTPSでアクセス

https://IPアドレス:8443/auth/admin

でアクセスするとみることができます。

まとめ

今回はここまでとなります。次は最新バージョンで試してみたいなと思います。その後認証でどう使えるかなどみてみたいと思います