CentOS 7にオープンソースのSSOサーバ『Keycloak』をインストールして触ってみる

ちょっとした好奇心というか、マイブーム的なものでWebアプリケーションのSSO(シングルサインオン)ツールについて調べていたところ、RedHatの出しているツール『Keycloak』が良さそうだというのを見かけたので、CentOS 7にインストールして触ってみることにした。 ただ、SSOだとログイン先の設定なども必要になってきて色々と準備も必要になるので、数回に分けることにして、今回は管理画面を表示するまでにしておく。 なお、バージョンは3.1.0を用い、.serviceファイルは今回は作成しない(次回以降)。 あと、(本当は良くないのだが、今回はお試しなので…)FirewalldとSELinuxは無効にしている。

1.事前準備

まず、動作用のユーザの作成と、ダウンロードに必要になるパッケージを導入する。

useradd keycloak
yum install -y git wget

動作にMavenが必要になるので、それらをインストールする。 まずはOracle JDKのインストールを行う。

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
rpm -ihv jdk-8u131-linux-x64.rpm

次に、Mavenのインストール。 作業中に実行ユーザに切り替えて、PATHを通しておく。

cd /opt
wget http://ftp.riken.jp/net/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
tar xzvf apache-maven-3.5.0-bin.tar.gz
mv apache-maven{-3.5.0,}
su - keycloak
cat << "EOF" >> ~/.bash_profile
export JAVA_HOME=/usr/java/default/
export PATH=$PATH:/opt/apache-maven/bin
EOF
. ~/.bash_profile

2. KeycloakをStandaloneで動作させてみる

諸々の準備ができたら、以下のコマンドでKeycloakのソースをダウンロードして、動作させてみよう。 スクリプトで動作させる場合、どうもコンテナで動いてるようだ。 そのまま起動させると127.0.0.1でしかアクセスできなくなるので、事前に設定ファイルを操作してサーバのIPアドレスを指定する。

wget https://downloads.jboss.org/keycloak/3.1.0.Final/keycloak-3.1.0.Final.tar.gz
tar xzvf keycloak-*.tar.gz
mv keycloak-*/ keycloak
cd keycloak
sed -i.bk '{s/127.0.0.1/IPアドレス/g}' standalone/configuration/standalone.xml
bin/add-user-keycloak.sh -u admin -p パスワード
bin/standalone.sh -b 0.0.0.0

プログラム実行後、「http://サーバのIPアドレス:8080/auth/admin」にブラウザからアクセスすると、以下の画面が表示されるので、先程作成したユーザ(admin)でログインする。 (とりあえずプログラムを動かしてるだけなので、オレオレ証明書でのSSL化もされていない状態)

ログイン後の画面はこんな感じ。