はじめに
こんにちは!kenkenです。
以前の記事で、自社サービスの認証基盤の実現方法と、CIAMサービスの2種類を整理しました。今回はその続きとして、独立CIAMの具体的な選択肢を1つ、掘り下げて紹介します。取り上げるのはAuth0です。
結論から先にお伝えすると、Auth0は「まず手軽に、一定水準の認証をすぐ持てる」独立CIAMです。開発リソースはサービス本体に集中させたい、でも認証の水準は落としたくない。そんな要件にフィットします。一方で、認証の流れそのものを細かく組み上げたい要件には割り切りが要ります。この記事では、その両面を、製品選定の判断材料になる観点に絞って整理していきます。
どんなサービス?
Auth0(オースゼロ)は、Okta社が提供するクラウド型のCIAMサービスです。以前の記事で整理した分類で言うと、特定のパブリッククラウドには紐づかない「独立CIAM」に当たります。もともとAuth0社という独立した会社のサービスとして生まれ、2021年からはOkta社の傘下に入りましたが、Auth0の名称はそのまま使われています。
料金はMAUに応じた課金が基本で、無料枠から自分で申し込んで、小さく始められます。
どんな性格の製品?
Auth0の性格をひとことで言うと、「まず手軽に、一定水準の認証をすぐ持てる」です。
もともとAuth0は2013年に、Eugenio Pace氏とMatias Woloski氏が創業したサービスです(2021年にOkta社が買収し、現在は独立したユニットとして運営されています)。2013年の創業告知ブログで、Pace氏はAuth0を「identity management that "just works"」(訳:「とにかく動く」ID管理)と表現しました。
この生い立ちが、「デフォルトの設定でも一定水準の認証が動く」「ドキュメントとSDKが整っている」「導入までのリードタイムが短い」という、製品の性格にそのまま表れています。この性格は創業から今まで一貫しており、公式サイトのトップページには現在も「Integrate auth into any stack in minutes」(訳:どんな技術スタックにも数分で認証を組み込める)と掲げられています。
ただし手軽さの裏返しもあります。認証の流れの骨組みはAuth0側に定義されていて、独自の処理はActionsなどの決められた拡張ポイントに差し込む形になります。ログイン画面の見た目は作り込みの選択肢がありますが、認証の流れそのものをゼロから細かく組み上げたい場合には向きません。以下、この性格が具体的にどう現れるかを、観点ごとに見ていきます。
組み込み方(画面の出し方・フローの組み立て方)
Auth0の基本はUniversal Loginです。自社サービスのログインボタンを押すと、Auth0がホストするログイン画面にリダイレクトし、認証をまるごとAuth0に委ねられます。ログイン画面を自社で作り込まなくてよく、認証方式の追加(パスワードレスやMFAなど)もAuth0側の設定変更だけで反映でき、アプリの改修が要りません。
組み込みには各言語・フレームワーク向けのSDKとクイックスタートが用意されています。認証フローに独自処理を差し込みたい場合は、Actionsという拡張ポイントがあります。
ここに性格が表れています。「まず手軽に、一定水準の認証をすぐ持てる」を最もよく体現しているのが、このUniversal Loginです。標準のままで終わりではなく、ログイン画面のUIを自社の技術で作り込むACULと、ログイン画面ごと自社サービス側に持つEmbedded Loginという方式も用意されていて、見た目はテーマの設定から画面そのものの作り込みまで、段階的に選べます。ACULは2025年に早期アクセスとして提供が始まった、比較的新しい選択肢です。ただし、どの方式でも認証の流れの骨組みはAuth0側にあり、画面を作り込むほど、その保守は自社の仕事になります。
使える認証方式
基本のID・パスワードに加えて、次のような方式を設定で足していけます。
最初はシンプルに始めて、パスキーやMFAを段階的に足していく進め方が設定ベースでできるのが特徴です。
B2B(取引先SSO・組織管理)への対応
Organizationsという機能で、1つのAuth0テナントのまま、取引先企業ごとにユーザー・ログイン方法・ログイン画面のブランディングを分けて管理できます。取引先のIdPとのSSO連携要求(SAMLやOIDCでの接続)には、取引先ごとの接続を用意して、その取引先にだけ有効化する形で応えられます。
取引先ごとの分離・ブランディング・SSOの有効化が、ひとまとまりの機能として最初から用意されていて、設定ベースで積み上げられます。B2B対応にも、この製品の性格がそのまま表れています。
不正アクセス・リスクへの備え
Attack Protectionという機能群を持ちます。
- Bot Detection
- botによる登録・ログインの検知です。パスワード・パスワードレス・リセットの各フローでCAPTCHA要求を設定できます。
- Breached Password Detection
- 漏洩したパスワードの使用を検知します。
- Brute-Force Protection/Suspicious IP Throttling
- 総当たり攻撃や不審なIPからのアクセスへの対策です。
以前の記事で「背負うもの」として挙げたbot・不正ログイン対策を、設定ベースで持てる形です。
プライバシー・データの扱い
データの置き場所として、公開クラウドでは米国・欧州・豪州・カナダ・日本・英国のリージョンを選べます(公式Docs)。顧客データを日本国内に置きたいという要件にも、選択肢として応えられます。
同意の取り方については、Auth0 Formsという仕組みで、利用規約やポリシーへの同意取得のステップをログインフローに組み込み、同意の状況をユーザー情報に記録できます。ポリシー改定時に、未同意のユーザーだけに同意画面を出す、といった使い方も可能です。
運用と始め方・学習
ドキュメントとクイックスタートが整備されていて、開発者が自走しやすいようになっています。始め方は、無料枠に自分で申し込んで試し、必要に応じて有償プランに進む自己申込型です。認証基盤の検証を小さく始めたいときに、契約交渉なしで触りはじめられます。
外部サービスとの連携
Auth0 Marketplaceで、外部サービスとの連携部品が提供されています。認証の周辺(不正検知、分析、CRM連携など)を、既製の連携で拡張することが可能です。
向いているケース/向かないケース
Auth0が向いているケース
- 開発リソースを認証基盤ではなく、サービス本体の機能開発に集中させたい(体制)。
- MFA・パスキー・ソーシャルログインを、まずは標準的な形で段階的に足していきたい(MFA・パスキー要件)。
- 取引先ごとのSSO連携が受注条件になっている・なりそう(取引先SSO)。
- 顧客データを日本国内のリージョンに置きたい要件がある(セキュリティ基準)。
- キャンペーン等でのユーザー急伸に備え、bot・不正ログイン対策を設定ベースで持ちたい(急伸)。
Auth0が向かないケース
- 認証の流れそのものを、ゼロから自分たちで組み上げたい場合。認証の流れを細かく組み立てられる独立CIAMもあります。
- すでに利用中のパブリッククラウドに付随するCIAM機能で足りる場合 → CIAMサービスの2種類と使い分け
- そもそも独立CIAM以前に、フレームワーク・ライブラリの認証機能や認証サーバーの自社運用が合う場合 → 認証基盤の3つの選択肢と選び方
⚠️ ここで挙げたのはあくまで「方向性」です。また本記事全体として、個別の設定手順やプラン条件には踏み込んでいません。機能の利用可否はプランや契約、ログインの実装方式によって異なり、多くの機能は設定に加えてアプリ側の設計・実装も伴います。検討の際は、必ず公式ドキュメント(一次ソース)で最新の情報をご確認ください。
まとめ:Auth0はあなたのサービスにフィットする?
Auth0は「まず手軽に、一定水準の認証をすぐ持てる」独立CIAMでした。検討の際は、まずご自身のサービスの状況を整理してみるのがおすすめです。
- 実現したいログイン体験は、標準的な範囲に収まるか(細部まで組みたい要件はないか)
- 認証要件(MFA・パスキー・取引先SSO)は今後どう伸びそうか
- 想定MAUと、急伸したときのコストの膨らみ方の試算
- データの置き場所(日本リージョンの要否)
「うちの要件だとどう?」の整理が難しいときは、誰かに相談してみるのもいいかもしれませんね!