VirtualBox+Vagrant+Spring BootでKeycloakの動作確認したときのメモ

はじめに

KeycloakでOpenID Connectを使ってみる(Spring Bootアプリケーション編)VirtualBoxCentOS上で試してみた際のメモ。
(VirtualBoxVagrant はインストール済みとする。)

環境構築

CentOS環境構築

まず、CentOS7の環境を用意していく。

$ mkdir centos7.2
$ cd centos7.2
$ vagrant init bento/centos-7.2

次に、ネットワークの設定をするために、Vagrantfileの以下の行のコメントを外す。これで、192.168.33.10でアクセスできるようになる。

$ vim Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"

また、以下のようにホストOSとゲストOSで編集したファイルを共有できるようにしておくと後々便利かもしれない(任意)

 config.vm.synced_folder "./shared", "/home/vagrant/shared", owner: "vagrant", group: "vagrant"

ここまできたらCentOSを起動し、sshでログインする。

$ vagrant up
$vagrant ssh

念のためSELinuxを無効にしておく。

# vi /etc/selinux/config
SELINUX=disabled

サーバーを再起動する。

# reboot

再起動できたら、再度sshでログインして、作業に必要なものをインストールしてく。今回は以下のパッケージをインストールした。

$ sudo yum install wget
$ sudo yum install zip
$ sudo yum install unzip
$ sudo yum install tmux (あるとちょっと便利)
$ sudo yum install vim

Java 環境構築

Keycloakを動作させるために、Javaの環境を構築していく。今回は以下のコマンドを実行した。

Maven のインストール

$ sudo yum install -y java-1.8.0-openjdk-devel
$ cd /usr/local/src
$ sudo curl -OL https://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
$ sudo tar -xzvf apache-maven-3.5.2-bin.tar.gz
$ sudo mv apache-maven-3.5.2/ apache-maven/

環境変数の設定

# cd /etc/profile.d/
# vim maven.sh

以下の内容を記述する。

# Apache Maven Environment Variables
# MAVEN_HOME for Maven 1 - M2_HOME for Maven 2
export M2_HOME=/usr/local/src/apache-maven
export PATH=${M2_HOME}/bin:${PATH}

mavne.shが用意できたら反映する。

# chmod +x maven.sh
# source /etc/profile.d/maven.sh
# mvn --version

Keycloakインストール

公式のダウンロードページから落としてくる。

$ wget https://downloads.jboss.org/keycloak/4.0.0.Beta3/keycloak-4.0.0.Beta3.zip
$ unzip keycloak-4.0.0.Beta3.zip
$ ./bin/standalone.sh -b 0.0.0.0
$ ./bin/add-user-keycloak.sh --user admin --password password

ここまでできたら、 http://192.168.33.10:8080/auth/ にアクセスすると、以下のようなログイン画面が表示され、Administration Consoleのリンクから、Username or emailにadmin、Passwordにpasswordを入力することでログインができる。 f:id:kent056-n:20180611232620p:plain

Keycloakの設定

Keycloakの設定は 1. Keycloakの設定 を参考に、レルムの作成、クライアントの作成、ロールの作成、ユーザーの作成とロールの割り当てを行う。 「有効なリダイレクトURI」に「http://192.168.33.10:8081/hello」と入力する点に注意。それ以外は同じ。

Spring Boot サンプルアプリケーションの作成

Spring Bootサンプルアプリケーションの作成も 2.簡単なSpring Bootアプリケーションの作成 を参考に進めていく。 プロパティが以下のようになる点には注意。

keycloak.auth-server-url=http://192.168.33.10:8080/auth
keycloak.realm=demo
keycloak.public-client=true
keycloak.resource=sample-app
keycloak.security-constraints[0].authRoles[0]=user
keycloak.security-constraints[0].securityCollections[0].patterns[0]=/hello
server.port=8081

動作確認

動作確認も同様の手順で可能。 アクセス先がhttp://192.168.33.10になる点だけ注意。

おわりに

ドキュメントが充実していて良かった。

参考