CLOVER🍀

That was when it all began.

Keycloakをインストールしてみる

ちょっとSSO、認証関連の話題に最近興味がありまして、Keycloakを少しずつやってみようかなと思いまして。

Keycloak

Keycloak?

認証、認可に関するOSSで、OAuth 2.0/OpenID Connect 1.0に対応しています。ThouthtWorksのTechnology Radarにも出てきて、けっこう注目度高そうな
感じです。

WildFlyをベースに作られているようです。

情報としては、ちょうど去年Advent Calendarもあって良いですね。

Keycloak by OpenStandia Advent Calendar 2017

Keycloakとは

マイクロサービス時代のSSOを実現する「Keycloak」とは:Keycloak超入門(1) - @IT

Keycloak超入門 - @IT

Keycloak で SSO #渋谷java

まあ、自分としてはKeycloakを触ってOAuth 2.0/OpenID Connect 1.0あたりを勉強できたらいいなぁと思っています。

公開資料 | OpenID ファウンデーション・ジャパン

Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~

基礎からの OAuth 2.0 - Developers.IO 2017 (2017-07-01)

OAuth 2.0 をかみくだく

OAuth 2.0 全フローの図解と動画

今更聞けないOAuth2.0

OAuth 2.0の概要とセキュリティ

OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜

OAuth & OpenID Connect 入門のための入門

今回は、とりあえずインストールしてみます。

Keycloakのインストール

まずはドキュメントを読んで、システム要件の確認。

Keycloak - Documentation

System Requirements

  • Javaがインストールされていて
  • Java 8が入っていて
  • zipまたはgzipとtarが入っていて
  • 512Mのメモリと1Gのディスク

があればOKそうです。今回の環境では、OpenJDK 8で起動します。

以下からKeycloakをダウンロードして、展開します。

Keycloak - Downloads

今回ダウンロードしたKeycloakのバージョンは3.4.3.Finalで、zip版を使用しました。

$ wget https://downloads.jboss.org/keycloak/3.4.3.Final/keycloak-3.4.3.Final.zip
$ unzip keycloak-3.4.3.Final.zip
$ cd keycloak-3.4.3.Final

Getting Startedを見ながら、

Overview

起動。

$ bin/standalone.sh

停止は、Ctrl-Cで。

起動したら、「http://localhost:8080」にアクセスすると、初回はKeycloakの管理ユーザーの作成を求められます。

ここでは、「keycloak-admin/password」でアカウントを作成します。

Webの画面ではなく、スクリプトで「add-user-keycloak.sh」で管理ユーザーを作成することもできます。

$ bin/add-user-keycloak.sh -u keycloak-admin -p password
Added 'keycloak-admin' to '/path/to/keycloak-3.4.3.Final/standalone/configuration/keycloak-add-user.json', restart server to load user

この場合は、オペレーション後にKeycloakの再起動が必要なようです。

Webで管理ユーザーを作成する、またはスクリプトでユーザー追加後に再度「http://localhost:8080」にアクセスすると「http://localhost:8080/auth/」にリダイレクト
されるので、「Administration Console」リンクを選択してログイン画面へ。

作成した管理ユーザーのユーザー名、パスワードを入力してログインします。

Realmとユーザーを作成する

Getting Startedに沿って、Realmとユーザーを作成してみましょう。

Creating a Realm and User

管理ユーザーでログインした状態で、左上に表示されているRealm(Master)にマウスオーバーすると、「Add realm」というボタンが現れるので、こちらをクリック。

「demo」Realmを作成してみます。

Realmを作成すると、作成したRealmに切り替わるようです。また、Realmにマウスオーバーすると、Realmを選択できるようになるみたいです。

次に、左のメニューのタブから「Manage」配下の「Users」を選び、「Add user」を選択。

適当にユーザーを作ってみます。

パスワードは、今回は「Credentials」タブで変えてみます。今回は一時的なものになります。

作成したユーザーを確認してみましょう。

http://localhost:8080/auth/realms/demo/account」にアクセスしてみます。URLは、Realm名っぽいですね。すると、ログインページにリダイレクトされます。

すると、パスワードの変更を求められるので適当に変更します。

パスワードを変更すると、ログインできましたよ、と。

とりあえず、今回はこんなところで。