【SSO】CONOHAのVPSサーバーにkeycloakをいれる

SSOを導入したいとの依頼があり、無料で出来るkeycloakをテストする事になりました。

サーバーはconohaのVPSでテスト

早速CONOHAサーバーでVPSを取得します。

CONOHAのVPSのいい所は、 VPSの削除が簡単に出来るので、すぐに違う環境が作れる事です。

色んな環境でのテストに向いています。

ちなみに、この記事を書いているのは2023年4月です。

まずOSを選びます。

安定していて使いやすいので、ubuntuの20.04をOSにします。

次にアプリですが、keycloakを使うのにブラウザを使うのでwebサーバーがついている、LAMPサーバーにします。

これでROOTパスワードを設定して「追加」します。

サーバーが出来ました。

ちゃんとWEBサーバーになっているか、ブラウザからIPアドレスを見てみます。

ブラウザで確認出来ました。

ちゃんとWEBサーバーになっています。

では早速、ターミナルでサーバーに入って、keycloakを入れていきます。

まずは、サーバーの整備

新しいサーバーなので色々準備をします。

まずは諸々アップデート

apt-get update -y

次にjavaのインストール

apt-get install default-jdk -y

ちゃんとインストール出来たかバージョンを確認します。

java –version

インストール成功しています。

javaがインスト出来たらkeycloakをgetします。

wget https://github.com/keycloak/keycloak/releases/download/15.0.2/keycloak-15.0.2.tar.gz

getしたら解凍

tar -xvzf keycloak-15.0.2.tar.gz

解凍したらoptに移動

mv keycloak-15.0.2 /opt/keycloak

keycloakをグループに追加

groupadd keycloak

ユーザーを追加

useradd -r -g keycloak -d /opt/keycloak -s /sbin/nologin  keycloak

所有者変更

chown -R keycloak: /opt/keycloak

アクセス権変更

chmod o+x /opt/keycloak/bin/

ディレクトリ作成

mkdir /etc/keycloak

confをコピー

cp /opt/keycloak/docs/contrib/scripts/systemd/wildfly.conf /etc/keycloak/keycloak.conf

launch.shをコピー

cp /opt/keycloak/docs/contrib/scripts/systemd/launch.sh /opt/keycloak/bin

所有者変更

chown keycloak: /opt/keycloak/bin/launch.sh

launch.shを編集します。

nano /opt/keycloak/bin/launch.sh

WILDFLY_HOME=“/opt/wildfly”

WILDFLY_HOME=“/opt/keycloak”

に変えます。

keycloak.serviceをコピー

cp /opt/keycloak/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/keycloak.service

keycloak.serviceファイルを編集

nano /etc/systemd/system/keycloak.service

wildflyをkeyclaokに変更

User=keycloak

の下に

Group=keycloak

を追加しています。

次に、デーモンをリロードします。

systemctl daemon-reload

keycloakすたーと

systemctl start keycloak

keycloakを有効化

systemctl enable keycloak

さてここまで来たら、keycloakがちゃんと動いたか確認します。

systemctl status keycloak

失敗していると↓こうなります。

Active: failed

になっていると、どこかで設定が間違っています。

成功していると

Active: active (running)

となっています。

ブラウザでkeycloakを確認

まず、8080がどうなっているか確認

ss -antpl | grep 8080

keycloakの管理人を作成

/opt/keycloak/bin/add-user-keycloak.sh -u admin

パスワード聞かれるので設定する。

keycloakを再起動

systemctl restart keycloak

最後に↓これと

/opt/keycloak/bin/kcadm.sh config credentials –server http://localhost:8080/auth –realm master –user admin

↓これをやって設定は終わり。

/opt/keycloak/bin/kcadm.sh update realms/master -s sslRequired=NONE

ここまで来たらブラウザでkeycloakを見てみましょう!!

http://サーバーのIPアドレス:8080/auth

でアクセスしてみてください。

この画面が表示されたら成功です!!

※たどりつけない場合は8080がブロックされてると思うので、サーバー側で許可して下さい。

またはセキュリティ的に危険ですが

uff disable

ufo allow 8080

でも解放できます!!

お疲れ様でした!!!