🚀

【インフラ_24日目】keycloak_1冊目

2024/08/29に公開

こんにちは投資ロウトです。

背景

・こちらも急ピッチで理解をしていかなければならない項目となっております。もし自分達でやらなくていいということであれば、概要を理解して終了となるかもしれません。

進捗状況

少しずつ進めていっていますが、現在の進捗は以下になっています。

①要件定義:1冊
②設計:1冊
③システムビジネススキル:3冊
④インフラ:3冊
⑤フロントエンド:0冊、1冊(TailwindCSSが進行中)

keycloakとは

keycloak・・・Webベースのシステムに認証と認可の機能を組み込むOSS(オープンソースソフトウェア)で、クラウド特有のベンダーロックインもなく、誰でも利用できるのが強みとのことでした。

Webシステムは、WebアプリケーションもしくはREST APIなどを利用して、各サービスが実装されたりしていますが、誰でも使える状態だと、セキュリティー的な問題が起きてしまう危険性があるとのことで、それを防ぐためには、認証と認可がなければいけないとのことです。

認証・・・ユーザーから提示されたクレデンシャルと、あらかじめシステムに登録された情報を照合し、本人であるかを確認する処理。
※インターネットバンキングなどでは、OTP(ワンタイムパスワード)や生体認証を組み合わせることを推奨

認可・・・何か情報を参照するための権限を付与すること。そして、RESTAPIなどで認可判断を実施し、アクセスできるようにしていくとのこと。

keycloakはまたサーバーとして動作するIAMソフトウェアでもあり、認証と認可を担っていくものとのこと。

keycloakのユースケース

・API認可
・SSO
・さまざまな認証

keycloakの動作状況

keycloak・・・JavaでのWebアプリケーションで、WildFlyで動作するとのこと。

WildFly・・・JVMで動作し、JDK8以上が必要で、かつサーバーは512MB以上のRAMと1GBのディスクが必要とのこと。

keycloakの認証情報は、JDBCを経由してDBに保存されるため、JDBCドライバーとPostgreSQLなどのDBも必要とのこと。
※ダウンロード版では、H2というDBがデフォルトでついているとのこと。

keycloakのセットアップと動作確認

本のURLが特になく、Desktop版だったのですが、先日せっかくDockerの学習をしたので、ググって探してみると、Docker版があったので、そちらを実行してみます。

https://www.keycloak.org/getting-started/getting-started-docker

dockerでコンテナの作成をしてみる

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:25.0.4 start-dev

localhost:8080にアクセスすると、表示されました。

Dockerで作成時にユーザー名とパスワードを指定しているので、下記を入れます。
ユーザー名:admin
パスワード:admin

ログインできました。

その他

レルム・・・Keycloakの管理単位のこと。

レルムを追加する

レルム名を入力し、Createを押下する。

レルム名がdemoときちんとなっています。

次にユーザーを追加していく。Usersタブを押下し

Create new userを押下する。

ユーザー名を入れて

Createボタンを押下する。

その後Credentialsタブをクリックし

Set Passwordからパスワードなどを設定する。

次にアカウント管理コンソールを表示して、ログインができるか確認する。

http://localhost:8080/realms/demo/account
にアクセス

その後先ほどのユーザーでログインをすると、以下が求められるので入力する

無事にログインできた。

セッションを確認する(管理者アカウントから)

セッションクッキーが作成されていることが確認できる。

と一旦以上で学習を終えたいと思います。状況次第ではどこまでやり切るかはわからないですが、焦らずコツコツやっていきたいと思います。ご精読ありがとうございました。

Discussion