この記事の概要
-
以前 Wildflyベースで立ち上げたKeycloak環境 が壊れたのを機に、Quarkusベースで再立ち上げ。
-
Keycloakについては、前項記事を参照。
やってみる
Get started with Keycloak on bare metal によると、OpenJDK 11以降が必要になったとのこと。
32bit Windows環境では選択肢少ないが、Zulu 17 JDKをscoopから入れる。
> scoop install zulu17-jdk
Keycloak本体は、こんな感じでbucket自作。
{
"version": "19.0.1",
"description": "Open Source Identity and Access Management",
"homepage": "https://www.keycloak.org/",
"env_add_path": "bin",
"extract_dir": "keycloak-19.0.1",
"url": "https://github.com/keycloak/keycloak/releases/download/19.0.1/keycloak-19.0.1.tar.gz",
"hash": "b1e9f89a6d02b9bf43848a970c69d94fb7e75c75fc8ebe2f69a1b7d2e0739733",
"persist": [
"conf",
"data",
"providers",
"themes"
]
}
とりあえず永続化したほうがよさそうなものは perisist
に移したけど、基本的にscoopは上等なzip展開ツールくらいにしか使っていない。
まず何も考えずに kc.bat start-dev
してみる。
追加オプションなにかつけたかもしれないけど忘れた。
(だいぶ昔のスクリーンショットベースで記事書いてます、雑で申し訳ない)
環境変数設定を先にするのもありだけど、案内に従って http://localhost:8080/ を開く。
管理用アカウントと初期パスワード設定。
管理用アカウント作成。
あらためてログインする。
管理画面まで入ると、旧Wildfly版と変わらなそう。
Realm作成したので、いろいろ見ながら設定。。
(このへんも詳細忘れた)
kc build
kc show-config
ここからは、
リバースプロキシで立ち上げる記事を参考 に、実環境用の準備。
Wildfly版のときと同様、httpsはフロント側で担い、バックエンドをhttpにする。
この場合は、 --proxy edge
を引数指定したらいいようだ。
kc start --hostname=example.com --proxy edge
あらためてフロント側から管理画面にアクセス、、すると、ログイン直後の画面でエラー。
なんだこれ。
エラー画面でHTMLソースを見てみると、リバースプロクシ環境を誤認しているのか、httpとhttpsが混在しているようなコードが生成されている。
仕方ないので、フロント側で使っているLet's Encryptの鍵と証明書を与えてhttps起動に変えてみよう。
引数指定は --proxy=reencrypt
に。ホスト名指定もやめる。
kc start --hostname-strict=false --http-enabled=false ^
--proxy=reencrypt ^
--https-certificate-file=cert.pem ^
--https-certificate-key-file=privkey.pem ^
--https-port=7161 ^
--log-level=INFO
だめでした。証明書チェックでエラー、、というのは、以下の鍵ではだめだという。
(略)
-----BEGIN EC PRIVATE KEY-----
(略)
どうせバックエンドだし、もう Snake Oil でいいや。。
無事開きました。
サービス化
Wildflyと違い、QuarkusではWindowsサービス関係のヘルパーは無いようだ。
WinSW で独自に仕込むか。。