BtoB SaaSにおけるIDaaSの選択が難しい
Leaner Technologies でエンジニアをしている @corocn です。
社内では IDaaS 利用していきたいねという機運が高まっているのですが、toB で SAML 対応の IDaaS について比較検討してみて難しいな〜と思ったところをまとめてみました。
前提
BtoB SaaS では、初期のプロダクトの領域を起点に事業領域を隣接する領域に広げていくことが多いですよね。バックオフィス向けの SaaS を開発しているメガベンチャーを見ているとそう感じます。
新しく立ち上げたプロダクトを既存のユーザーさんにも提供したい。そうなると、必然的に複数のプロダクトに対して共通で ID 基盤を持ちたくなるはず。認証ドメインを分離しようとすると、自前で作るか、KeyCloack などの OSS をベースに運用するか、IDaaS の利用を検討することになるでしょう。
最初は認証基盤も含めてモノリシックに作るけど、途中で移行するようなパターンもあれば、かなり早い段階で認証基盤を自前で作っている会社さんもありそうです。
BtoB SaaS(特にエンタープライズ向け)の場合、SAML 接続の提供は必須かつ会社ごとに SAML の接続設定が必要になるため、一部 IDaaS の制約にひっかかります。
以下の note に書いてあるような、LayerX さんの「1SAML いくら?」の話もウンウンと思いながら読んでいました。
OIDC と SAMLの対応状況
著名 IDaaS の対応状況ですが、調べた限り Google Identity Platform、Amazon Cognito、Auth0 あたりは OIDC, SAML どちらにも対応しています。Authlete は OAuth/OIDC に特化しているようで、SAML という文字は見当たりませんでした。
一般的になりつつある SPA + API なアーキテクチャの場合、IDaaS でよく候補に挙がるのは Firebase ですが、OIDC と SAML に対応していないのでエンタープライズ向けだと候補から落ちます。
Auth0 は Pricing に掲載されているプランの中だと、B2B・B2E は SAML に対応していますが、コネクションの上限が 3 までなので SAML を提供する会社が 4 社以上になった時点で Enterprise になります。要問合せでボリュームディスカウントも効くと思われますが、かなりお高く付きそうです。費用に関しては後述します。
社内で「コネクション数の上限が 3 ってどんなケースを想定してるんですか?」という質問がありましたが、社内向けアプリだったり、利用する会社がどう転んでも絞られるようなケースです。
ユーザー数とPricing
ほとんどの IDaaS が MAU(Monthly Active User)ベースの課金モデルを採用しています。表に MAU あたりの料金を横比較できるようにまとめてみました。
MAU | Google IdP(Tokyo) | Amazon Cognito(Tokyo) | SAML or OIDC | Auth0 (B2B Essential) |
---|---|---|---|---|
〜7000 | free | free | 0.015 USD | 0.20 USD |
7000 〜 5万 | free | free | 0.015 USD | Contact us |
5万 〜 10万 | 0.0055 USD | 0.0055 USD | 0.015 USD | Contact us |
10万 〜 100万 | 0.0046 USD | 0.0046 USD | 0.015 USD | Contact us |
100万 〜 1000万 | 0.0032 USD | 0.00325 USD | 0.015 USD | Contact us |
1000万〜 | 0.0025 USD | 0.0025 USD | 0.015 USD | Contact us |
Google IdP と Amazon Cognito はほぼ同じです。互いに意識して料金設定していそうですね。ちなみに、両者 SAML/OIDC 接続経由のユーザー料金は 0.015 USD で固定となります。1 ユーザー1.5 円ぐらいでしょうか。プライシングによるところもありますが、許容範囲内ではないでしょうか。
こうやって比較してみると、Auth0 はかなり高めですね。ユーザー数をどの程度サービス価格に反映させるかはプロダクトの戦略次第だと思いますが、10 倍だと方針転換する場合の足枷になりそうな気はします。個人的には好きなサービスですし、個人開発や PoC、社内向けアプリでは非常に重宝するなと感じています。
まとめ
- Auth0 を BtoB SaaS + SAML で使うのは結構厳しい 😢
- なんだかんだ Google IdP か Cognito あたりが選択肢として無難そう
以上、参考になれば幸いです。
宣伝
Leaner Technologies ではエンジニアを募集しています!ユーザーに価値を届けるために、積極的に SaaS を活用しながら開発していきたいエンジニアの方、一度お話しましょう!
Discussion
有用な記事ありがとうございます。
私もちょうど同じような選択をしていて、今回はKeycloakを利用する方針に決定しました。
Google Identity Platformですが、ブラウザではSAML対応されていたのですが、モバイルアプリのSDKはSAMLが対応していなくて断念しました。
こちらも選定の参考になればと思います。