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のインストールをします
[root@localhost ]# dnf install -y java-1.8.0-openjdk
keycloak-16.1.1のインストール
[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
これでインストール完了です。
サービスファイルの作成
[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
ユーザーの作成や権限変更
[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
サービス起動
[root@localhost bin]# systemctl daemon-reload [root@localhost bin]# systemctl enable keycloak [root@localhost bin]# systemctl start keycloak
アクセスしてみる
起動成功していればhttp://IPアドレス:8080/auth/にアクセスしてみます
ローカルホストからアクセスしてね
keycloakにアクセスするとlocalhostからアクセスしてねとでます。サーバーなどの場合はできないのでコマンドでするしかないです
管理者の作成
[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
管理画面に再度アクセスしてみる
http://IPアドレス:8080/auth/ にアクセスすると、先ほどと変わった画像になります。
にアクセスをしてみます
ログイン画面
ログイン画面が表示されるので、先ほど作ったユーザー名とパスワードで入って見ます
日本語に変更
無事にログインできました。今度は言語を日本語にしてみたいと思います。
Theme タブへ
Themeタブの一番下にあるInternationalization Enabledをオンにします
そうすると言語が選べるので日本語にしてsaveを押します
再度ログイン
一度ログアウトして再度ログインすると日本語でログインできるようになります
HTTPSでアクセス
https://IPアドレス:8443/auth/admin
でアクセスするとみることができます。
まとめ
今回はここまでとなります。次は最新バージョンで試してみたいなと思います。その後認証でどう使えるかなどみてみたいと思います
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS