Keycloak初心者ですが、AWSにインストールしてみたいなぁと思いまして試行錯誤しております。
一番参考にしたのは、唯一の日本語書籍である以下の本です。
『認証と認可 Keycloak入門 OAuth/OpenID Connectに準拠したAPI認可とシングルサインオンの実現』
【動機】
私は中小企業に勤務していますが、いくつかの社内開発のWEBシステムがあります。
シングルサインオンはおろか、IDパスワードも個別のWebシステム毎に登録されており、バラバラです。
今後IT化を進める上で、IDパスワードの一元管理が重要と思っているからです。
やりたい事は、各システムに実装しているログインの仕組みを外して、Keycloakで一元管理です。
まだKeycloak環境構築で試行錯誤している段階なので、アプリの改修の仕方はわかっておりません。
Keycloakは色々なユースケース(使い方)があるそうですが、一番簡単そうなリバースプロキシ型を採用します。
(acme.comの所は、ご自分のドメインに適宜読み替えてください。余談ですが、実際に、このドメインがある事を今知りました)
【つまづきポイント1】
最初慣れているAmazonLinux2で、サーバー構築を始めたのですが、Apacheのモジュールのインストールの所で、わからなくなってしまいました。
初心者のため、『認証と認可 Keycloak入門』この本になるべく合わせるのが良いと考えて、ubuntuで、EC2インスタンス作成から、やり直しました。
インスタンス作ったは、いいが、ログインできない!
AmazonLinuxだと ec2-userでログインしますが、OSとしてubuntuを選択した際は、ec2-userの代わりにubuntuと入力する必要があるんですね。知りませんでした。
【つまづきポイント2】
最初『認証と認可 Keycloak入門』を参考にサーバー構築を進めていたのですが、この本では、localhostと書いてあって実際にドメイン名を取って、どうするの説明が書かれていません。
検索していたところ、以下の記事が私のやりたい事に近い事がわかりました。
こちらを参考にさせてもらいました。
↑こちらの記事です。
参考にしたQiitaの記事と、上の方に書いてあるAfterの図のポート番号が違っているのは、『認証と認可 Keycloak入門』に合わせてインストールしていたため、ポート番号が本に書かれているのに、沿っています。
【つまづきポイント3】
参考にしたQiita記事では kc-httpd.example.comが 80(http)となっております。
私は両方ともhttpsにしたかったのですが、「ロードバランサーって、2つ必要なの?」と思いました。
東京リージョンのロードバランサー約19ドル。中小企業なので、なるべく月額コストは、おさえさえたいところ。社内開発の社内システムなので、同時接続数も、たかが知れています。
調べたところ、ターゲットグループを2つ作る事で、Afterの図のような構成が取れる事がわかりました。
1つのロードバランサーの料金で運用できそうです。
ELB(ALB)の所で、https → http 変換をしています。
【つまづきポイント4】
『認証と認可 Keycloak入門』では、データベースの変更について、あまり記載がありません。
postgresqlを推奨している様子ですが、バージョンも書いてありません。
検索していたところ、keycloak 本家のドキュメントに記載がありました。
どれにしようか、かなり迷いますが、mariadb Ver10にしてみます。
次は、Undertow request failed HttpServerExchange{ GET /management}:こんな
エラーが出てきました。
検索したところ、以下の記事がありました。
JDKを 11.0.14にすると、発生しなくなるそうです。
まだローカル環境(Windows)でしか試していませんが、たしかに発生しなくなりました。
本日は、ここまで。
最後までお読みいただきありがとうございました。