はじめに
Ory(オリー) というOSSの認証基盤をご存知でしょうか?
OpenAIがChatGPTの認証基盤として採用したことで話題になったので、ご存知の方も多そうです。
ChatGPTのユーザーは、2024年末に4億人を突破し、2025年10月には、8億人にまで倍増したそうです。この爆発的な成長を支える認証基盤として、OpenAIはOry を採用しました。1
国内では、LayerXさん2やマクロミルさん3が採用されています。
当社スタジオメッシュはOryの導入支援を行っており、本記事では代表の清田が、その中で得た知見も交えてOryについて解説します。
Oryとは
Oryとは、Ory社が提供する「モダンなアプリケーションのためのオープンソースの認証基盤」です。
厳密にはOryという製品は存在せず、Ory KratosやOry Hydraといった役割別のモジュールが複数提供されています。本記事ではそれらの総称をOryと呼ぶことにします。
3つの特徴
1. モジュール構造
既存のモノリシックな製品とは異なり、Oryは必要なコンポーネントを選択して利用するモジュール構造を採用しています。例えば認証機能はKratos、OAuth2/OpenID ConnectはHydraといった具合です。
これにより、必要な機能だけを導入でき、システムの複雑性を抑えられます。また、既存の認証システムと組み合わせて利用も可能です。
2. オープンソース
OryのソフトウェアはすべてApache 2.0ライセンスで公開されており、商用利用・改変・再配布が自由に行えます。ソースコードを確認できるため、セキュリティ監査や独自カスタマイズが可能です。GitHubでは主要プロダクトが合計30,000スター以上を獲得しています。
3. ヘッドレスアーキテクチャ
Oryは画面(UI)を持たないヘッドレス設計です。ログイン画面やユーザー登録画面は、React、Vue、Angular、ネイティブアプリなど任意のフレームワークで自由に構築できます。
これにより、自社またはサービスに合わせたUXを作り込むことが可能です。なお、後述するSaaS版のOry NetworkではUI(Ory Account Experience)が提供されます。
私はB2Cの認証基盤に関わることが多いので、個人的に最も好きなポイントです。
Oryシリーズについて
Oryには主に以下の主要モジュールが存在しています。それぞれが特定の役割を担い、組み合わせることでフルスタックの認証基盤を構築できます。
| モジュール | 説明 | GitHubスター |
|---|---|---|
| Ory Kratos | 認証・ID管理 | 13,400+ |
| Ory Hydra | OAuth 2.0 / OpenID Connect プロバイダー | 16,900+ |
| Ory Keto | FGAベースのアクセス制御 | 5,200+ |
| Ory Polis | SAML、SCIM 2.0 | 2,200+ |
| Ory Oathkeeper | ゼロトラストベースのAPI認証・認可プロキシ | 3,500+ |
このほか、Dockerコンテナを使った統合テストツールのOry Dockertestなども提供されています。
本記事では、利用シーンの多そうな2つのモジュールについて紹介します。
Ory Kratos(認証・ID管理)
Kratosは認証とID管理を担当するOryの主要コンポーネントです。
主な機能:
- ユーザー登録・ログイン・パスワードリセット
- ソーシャルログイン(主要プロバイダーはプリセットで対応)
- 多要素認証(TOTP、WebAuthn/FIDO2、SMS OTPなど)
- セッション管理
- ユーザープロファイル管理
Kratosは単体で認証システムとして機能し、大抵の認証基盤に求められる機能を具備しています。ただし、UIは持っておらず、OAuth2/OIDCにも対応していません。OAuth2/OIDCが必要な場合は、次に紹介するHydraと組み合わせます。
Ory Hydra(OAuth2 / OpenID Connect)
HydraはOAuth2 / OpenID Connectのプロバイダーとして機能します。OpenID Foundation認定を取得しています。
Hydra自体に認証機能はなく、別の認証システム(Kratosに限らない)と連携して機能します。これにより、既存の認証システムに手を加えることなく、標準プロトコル対応のIdPを構築できます。
KratosとHydraを組み合わせることで、Auth0やKeycloakのような認証基盤を構築できます。また、Hydraだけを既存の自社認証システムと連携させ、既存システムをOAuth2/OIDC対応にするという使い方も可能です。LayerXさんの事例では、まさにこの特性を活かして既存システムの共通ID化を実現しています。
既存ソリューションとの違い
認証基盤の選定にあたっては、Auth0やKeycloak、Cognitoなどが候補に挙がることが多いのではないでしょうか。Oryがこれらと異なるポイントを整理します。
1. スケール時の優位性
IDaaSは、ユーザー数に応じた従量課金のため、コスト急増のリスクがあります。かと言って認証製品を切り替えるハードルは非常に高いです。
しかしOryはIDaaS(後述するOry Network)とOSSの両方をラインナップしているため、コストが課題となった際に同一製品内でOSSに切り替えるという選択が可能です。
2. ベンダーロックインの回避
OSSベースのため、ベンダー選択肢の自由度が高く、もちろん自社での開発・運用も可能です。
3. カスタマイズ性の高さ
Oryはヘッドレス設計のため、UIをゼロから構築する前提の構造になっています。そのため、非常に高い自由度があり、ブランドやサービスに最適化したUXを実現できます。
またUIだけでなく、ワークフローや認証フローもカスタマイズが前提の設計になっており、自由度が高いです。
デプロイの選択肢
Oryの大きな特徴として、デプロイモデルの選択肢が挙げられます。手軽にフルマネージドSaaSを利用してもよいですし、OSSの自社ホスティングも可能です。
「まずはマネージドサービスで素早く始め、ユーザー規模が拡大したらコスト最適化やカスタマイズのためにセルフホストへ移行する」といった段階的なアプローチを取ることもできます。
1. OSSをセルフホスティング
OryのOSS版をセルフホスティングする方法です。
- コンテナ前提で設計されており、KubernetesやDocker Composeとの親和性が高い
- ソースコードの確認・編集が可能
- 商用利用もApache 2.0ライセンスの範囲で自由
なおOSSを本格運用する場合は、商用ライセンス(Ory Enterprise License)も提供されています。SLAに基づくセキュリティパッチの優先提供や、SAML SSO、SCIM等のエンタープライズ機能が追加されます。
2. Ory Network
Auth0やCognitoのようなフルマネージドSaaSです。KratosやHydraをベースに構築されています。
- インフラ運用が不要
- 無料の開発者用プラン
- 日本リージョンあり
Oryのイマイチなところ
ドキュメントの使い勝手が悪い
- Google検索をしても、欲しい情報に直接たどり着くことが滅多にない
- ドキュメントの記載がどのモジュールに対しての内容なのか判断しにくい
Auth0のドキュメントが素晴らしすぎるのもありますが、Oryはまだまだ整理が足らない印象です。
ちなみにドキュメントページの右下にいるAIはそこそこ良い感じです。
Ory Networkの開発者体験が発展途上
- Terraformプロバイダーがない
- 管理画面で設定できる内容は一部のみで、yamlやCLIが必要
致命的に困ることはありませんが、「こうなったらいいのにな」と感じることは多いです。今後に期待です。
まとめ
Oryは、OpenAI(8億人超のユーザー基盤)やマクロミル(レガシー認証の統合)といった事例が示す通り、大規模なスケールからレガシー刷新まで幅広いユースケースに対応できる認証基盤です。
認証基盤のコストやUXに課題を感じている方、あるいは認証基盤のリプレースや新規構築を検討している方にとって、有力な選択肢になるのではないでしょうか。
SaaS版のOry NetworkやOSSのどちらも無料で試せるので、まずは触ってみることをおすすめします。
Oryに興味を持った方へ
スタジオメッシュは、Oryの公式代理店として技術サポート・導入パッケージを提供しています。日本語での技術相談や導入支援をご希望の方は、お気軽にお問い合わせください。
