※当サイトの記事には、広告・プロモーションが含まれます。

Keycloakの導入方法が分かり辛過ぎるんだが...

gigazine.net

⇧ 『T細胞の異常な活性化』の原因は分からんけど、良くない状態ってことなんでしょうね、異常って言ってるし...

Keycloak とは

GitHubで公開されている情報によると、

github.com

Add authentication to applications and secure services with minimum effort. No need to deal with storing users or authenticating users.

Keycloak provides user federation, strong authentication, user management, fine-grained authorization, and more.

https://github.com/keycloak/keycloak

⇧ アプリケーションのサービスに対しての認証・認可の機能を提供すると。

う~む、分かり辛い...

イメージとしては、

⇧ 上図のような感じで、「Resource Server」の部分にアプリケーションが配置されているとした場合に、アプリケーションで用意しているAPIに対してのアクセスを制御するための機能を提供してくれるらしい。

「ログイン」とかによる制御と異なるのは、APIに対しての認証・認可のための機能を提供してくれるといったところでしょうか。

おそらく、

ts0818.hatenablog.com

⇧ 上記の記事の時に、「Twilio」の「Authy」という多要素認証ツールで情報漏洩がニュースになっていたという話を紹介してましたが、「Keycloak」の機能は、この問題を解決してくれるようなものと思われる。

OSSOpen Source Software)だと、

tech-blog.rakus.co.jp

OpenAMについては普及度合いや枯れ具合は良かったものの、開発はセキュリティアップデート中心という状況であり、開発母体の規模に不安があったために採用を見送りました。最終リリースも2019年で止まっています。

認証アーキテクチャの更新について検討してみた - RAKUS Developers Blog | ラクス エンジニアブログ

Keycloakは現状でも活発に機能追加リリースが行われており、K8sなどコンテナ環境での利用も想定された設計になっているようなので将来性も問題ないと判断しています。

認証アーキテクチャの更新について検討してみた - RAKUS Developers Blog | ラクス エンジニアブログ

⇧ 上記サイト様によりますと、

  • OpenAM
  • Keycloak

のどちらかが候補になる感じのようですが、

github.com

github.com

GitHubのリリースのサイクルを確認した感じ、「Keycloak」の方が活発に開発されてる模様。

WildFly ベースの Keycloak は2022年6月でサポート切れ。Quarkus ベース になっている

何やら、

zenn.dev

www.keycloak.org

In Keycloak 17 the default distribution is now powered by Quarkus, while the legacy WildFly powered distribution will still be around until June 2022 we highly recommend starting the migration as soon as possible.

https://www.keycloak.org/migration/migrating-to-quarkus

⇧ とあり、動作環境が変わったらしい。

Quarkus is not an application server

Unlike WildFly, Quarkus is not an application server. While an application server can dynamically deploy applications, and alter what is loaded into memory at runtime, this is not possible on Quarkus.

https://www.keycloak.org/migration/migrating-to-quarkus

⇧ 余計にややこしくなってるのかね?

導入方法は5つあるで良い?

公式のドキュメントを見た感じでは、

www.keycloak.org

⇧「Getting started」には、

  1. OPenJDK
  2. Docker
  3. Podman
  4. Kubernetes
  5. OpenShift

の5つが全量っぽいように見える。

ユーザー登録時、乃至は、ログイン時にKeycloakのユーザーに登録すれば良い?

とりあえず、

  • ユーザー登録時
  • ログイン時

のいずれかの時に、Keycloakのユーザーを作成・登録する感じになるんかね。

事前に、Keycloakで、対象のアプリケーションの情報を登録しておく必要はあるっぽいですが。

で、Keycloak側で諸々の情報が登録できていると、

ja.quarkus.io

⇧ 上図のようなフローで、アプリケーションのAPI認証が実現できると。

ユーザーの登録と絡めるのが大変そうですな...

で、肝心のユーザーの身元を検証するために必要な本人確認のための情報とかは、

  • Keycloakの利用するデータベースに保管するのか
  • アプリケーションの利用するデータベースに保管するのか

が分からない...

まぁ、Keycloak側とアプリケーション側の両方でユーザーの情報を管理してると二重管理になってしまうから、Keycloak側で利用するデータベースで一元管理する感じになるんですかね?

と思っていたら、

www.hitachi.co.jp

下の図は、Keycloakを活用してAPI管理基盤を実現する構成の一例です。

Keycloakとは?:OSS(オープンソース・ソフトウェア):日立

⇧日立さんの一例を見た感じでは、ユーザー情報のDBは分けてるっぽいですな...

まぁ、API認証以外でユーザー情報を利用するんであれば、DBを分けざるを得ないですかね...

ドキュメントの情報が整備されてない気がしてならない...

とりあえず、事前に利用者が定まらないようなユースケースでの事例についての詳細な情報が欲しいですな...

毎度モヤモヤ感が半端ない…

今回はこのへんで。