🔐

次世代の認証基盤、ZITADELはv3でこう変わる

に公開

こんにちは、@key60228です。

現在AI Workerでは認証基盤としてClerkを採用していますが、ビジネス要件から別の認証基盤への移行を検討しています。移行先の有力候補として挙がっているのがZITADELですが、つい先日v3のリリース予定が発表されました。

そこで本記事では、ZITADELのv3リリースに伴う変更点や懸念点についてまとめてみます。

ZITADELとは

ZITADELは、スイスのCAOS社が提供しているIdentity Platformです。

https://github.com/zitadel/zitadel

プロジェクトは2020年からスタートし、昨年2024年にはシリーズAの資金調達も行っているようです。

KeycloakAuth0といったサービスに比べるとまだまだ知名度は低いですが、OpenID Certificationも受けており、今勢いのある認証基盤の一つです。

Star History Chart
GitHub Star数も右肩上がり

ZITADEL v3の変更点

冒頭で述べた通り、2022年2月のV2リリース以来約3年ぶりのメジャーアップデートが先日3月13日にアナウンスされました。

変更点としては以下が挙げられています。

  • ライセンスの変更
  • リリースプロセスの変更
  • CockroachDBのサポート終了

それぞれについて詳しく見ていきます。

ライセンスの変更

今回のアナウンスで最もコミュニティを賑わせているのがライセンスの変更です。

従来は Apache 2.0 ライセンスを採用していましたが、v3からは一部の機能が GNU Affero General Public License v3.0 (AGPL-3.0) に変更されます。

ライセンスの詳細な定義は他の記事に譲りますが[1]、AGPL-3.0はコピーレフトの強いライセンスで、ZITADELを改変してサービスとして提供する場合はその改変部分を公開する必要があります。

これだけ聞くと少し抵抗感のある変更かもしれませんが、今回のライセンス変更の対象となるのはZITADELの コア部 (バックエンドロジック)マネジメントコンソール画面ログイン画面 のみで、APIやSDK、gRPCインターフェースを定義するProtocol Buffers[2]はApache 2.0ライセンスのまま据え置かれるため、特別な理由がない限り影響は少ないかと思われます。

ユーザーに自社サービスと親和性のあるログイン画面を提供したいケースもあるかと思いますが、そういった場合はZITADELのAPIを利用してUIのみ自分たちのプロジェクトを構築することで対応可能です。(以下参照) (ただし、ZITADELのログイン画面を改変して提供する場合はAGPL-3.0に従う必要があります)

we do allow that people build their own ui on top of Zitadels apis.
That is one of the reasons we keep the sdk/apis under an Apache 2.0 license to avoid problems.
-- ZITADEL Discord Communityより

また、Exampleコードやドキュメント、Helm ChartやTerraformファイルについてもApache 2.0のまま据え置かれる予定のため、コミュニティが提供しているHelm ChartやTerraformをカスタマイズして自社サービスとして提供する場合も今回の変更による影響はなさそうです。

つまり、以下のケースに該当しない場合は今回のライセンス変更による影響はほぼなさそうです。

  • 汎用的でない認証関連ロジックが必要な場合、かつそれらのソースコードを公開できない場合
    • OIDCやSAMLなどのプロトコルに準拠しない、特定の業界や業務に特化した認証ロジックが必要なケースが考えられるかもしれません
    • こういったケースもCommercial License等の相談は可能だそうです
  • 既存のZITADELのマネジメントコンソール/ログイン画面のソースコードに改修を加えてサービス提供している場合、かつそれらのソースコードを公開できない場合
    • 上述の通り、APIを利用してUIを自前で構築することでソースコードの公開を回避可能です

リリースプロセスの変更

リリースプロセスやサイクルも変更される予定です。

従来はMajorリリースが不定期で、Minorリリースが2週間ごとに行われていましたが、v3からは以下のようなサイクルに変更されます。

リリース 頻度 後方互換性
Major 3ヶ月ごと なし
Minor 2週間ごと あり
Patch 随時 あり

サポート期限も今まで明示されていませんでした (少なくとも自分は見つけられませんでした) が、今後はMajorリリースのサポート期限がリリース後 半年 となる予定です。 (ただしenterprise契約の場合はこの限りではない)

Keycloakも同様ですが、アップデートサイクルとサポート期限が短いため、メジャーアップデートのコストがやや高いのがネックですね。 (アップデートが早いことは良いことですが)

CockroachDBのサポート終了

CockroachDBのサポートもv3で終了する予定です。

元々ZITADELはCockroachDBとPostgreSQLの両方をサポートしていましたが、メンテナンスリソースとテストリソースの削減のため、CockroachDBのサポートを終了するそうです。

PostgreSQL一本に絞ることでパフォーマンスの向上やバグの減少、コア機能の強化にリソースを集中したい狙いがあるようです。

既にProduction運用されている方にとってはかなりクリティカルな変更に思えますが、GitHubやDiscordを見る限り、CockroachDBを採用しているユーザーはそこまで多くないように見受けられます。

マイグレーションコマンド (zitadel mirror) も提供されているため、移行も比較的スムーズに行えそうです。

まとめ

以上がZITADEL v3リリースに伴う変更点でした。

「ライセンスを変更する」文言を最初に見た時は少し焦りましたが、よく読んでみると影響範囲は限定的かつOSSの思想にも則っており、AI Workerにおける認証基盤の移行先として引き続き有力候補に挙げられそうです。

また移行が決定・完了したら、機能面や使い勝手についても改めてレビューしてみたいと思います。

参考文献

最後に

AI Shiftではエンジニアの採用に力を入れています!
少しでも興味を持っていただけましたら、カジュアル面談でお話しませんか?
(オンライン・19時以降の面談も可能です!)

【面談フォームはこちら】
https://hrmos.co/pages/cyberagent-group/jobs/1826557091831955459


脚注
  1. AGPLについては渋川さんのこちらこちらの記事がすごく分かりやすかったです。 ↩︎

  2. AGPL-3.0管理下のProtocol Buffersから生成されたクライアントコードを自身のプログラム内で利用する場合、そのプログラム全体がAGPL-3.0に従う必要がある可能性があることからApache 2.0ライセンスのままにしているそう。FAQより。 ↩︎

AI Shift Tech Blog

Discussion