はじめに
Ory Kratosの公式クイックスタートに沿ってユーザー登録とログインを試します。
Ory Kratosはオープンソースの認証・ユーザー管理システムで、セルフホストで運用できます。Kratos自体はUIを持たずAPIのみを提供する設計で、クイックスタートにはサンプルのUIが付属しています。本記事ではDockerを使ってローカル環境でクイックスタートを実施し、ユーザー登録からログインまでの一連の流れを確認します。
公式ドキュメントは以下で公開されています。
https://www.ory.com/docs/kratos/quickstart
前提条件
以下がインストールされている必要があります。
- Git
- Docker / Docker Compose
セットアップ
リポジトリのクローン
Ory Kratosのリポジトリをクローンします。
git clone https://github.com/ory/kratos.git
cd kratos
コンテナの起動
以下のコマンドでコンテナを起動します。
docker compose -f quickstart.yml -f quickstart-standalone.yml up --force-recreate
初回はDockerイメージのダウンロードに時間がかかります。
起動が完了すると、以下のサービスが利用可能になります。
| ポート | サービス | 役割 |
|---|---|---|
| 4455 | Node.js UI | ユーザー向けの画面 |
| 4433 | Kratos Public API | 認証フロー用API |
| 4434 | Kratos Admin API | 管理用API |
| 4436 | MailSlurper | テスト用メールサーバー |
ブラウザでhttp://127.0.0.1:4455/にアクセスするとウェルカム画面が表示されます。
左側のメニューから各機能にアクセスできます。
動作確認
ユーザー登録
左側メニューのSign Upを押すと登録画面が表示されます。
メールアドレス、名前を入力してSign upボタンを押します。
続いてパスワードの入力画面が表示されます。
パスワードを入力してSign upボタンを押すと、メールアドレスの確認画面に遷移します。
確認コードの入力を求められます。確認コードはメールで送信されています。
メールアドレスの確認
別のタブでhttp://127.0.0.1:4436/にアクセスするとMailSlurperの画面が開きます。MailSlurperは開発用のメールサーバーで、Kratosから送信されたメールを確認できます。
受信したメールをクリックすると確認コードが表示されます。
メール内のリンクをクリックすると確認コードが入力された状態で確認画面に遷移します。確認コードを手動で入力する場合は、確認画面に戻りコードを入力してください。Continueボタンを押すとメールアドレスの確認が完了します。
メールアドレスの確認が完了すると以下の画面が表示されます。
ログイン済み状態の確認
登録が完了すると自動的にログイン状態になります。ウェルカム画面に戻ると、左側メニューのSign InとSign Upがグレーアウトされ、代わりにAccount SettingsとLog outが有効になっています。
ログアウトとログイン
Log outを押すとログアウトされ、ログイン画面に遷移します。
先ほど登録したメールアドレスとパスワードを入力してSign in with passwordボタンを押すとログインできます。
クリーンアップ
動作確認が完了したらコンテナを停止します。
docker compose -f quickstart.yml -f quickstart-standalone.yml down -v
-vオプションを付けることでボリュームも削除されます。
おわりに
Ory Kratosのクイックスタートを使ってユーザー登録からログインまでの流れを確認しました。
実際に触ってみると、メールアドレスの確認フローやパスワードポリシーなど認証に必要な仕組みがひととおり揃っており、クイックスタートだけでもその完成度の高さが伝わってきました。UIを自前で用意する設計のため、既存サービスへの組み込みにも柔軟に対応できそうです。
認証基盤を自社で持ちたいがゼロから作るのは避けたい、というケースではKratosは有力な選択肢になりそうです。今回はクイックスタートの範囲でしたが、ソーシャルログインや多要素認証なども対応しているので、引き続き掘り下げていきたいです。









