はじめに
Technology Innovation Group所属の山田です。2021年7月21日に Future Tech Night #14~認証認可(IDaaS)勉強会~で発表させてもらいました。
元々は、Rails Devise+cancancan、Cognito User Pools(5年前)、Auth0の開発経験があり、改めてOSSも加えて学んでみたかったのが、テーマを決めた背景になります。
なお、一緒に発表をした市川さんが、Auth0でWebAuthnを試されており、認証において非常に重要な機能になりますので、合わせてご覧ください。私はとても勉強になりました。
資料
発表資料はこちらです。
概要
ハンズオン
全てのプロダクトをまっさらな状態からハンズオンし、要した時間と、利用できるまでの工程をまとめてみました。
アプリケーションはVueで統一しています。
ソースコードはコピー&ペーストで動くを事を目指し、参考URLも掲載しています。
- Auth0
Auth0の初期設定、vueを利用したハンズオン - keycloak
keycloakの初期設定、vueを利用したハンズオン - Cognito
Cognitoの初期設定、Amplify+Vueを利用したハンズオン、hosted UI+Vueを利用したハンズオン
比較
- プラン
HPに掲載されている内容で、プランと価格を比較 - 機能
各プロダクトのダッシュボード画面、トップレベルメニューまでの機能比較
当日頂いたQA
時間の関係で頂いたQAに返答できなかったため、改めてこの場で返答させて頂きます。
Q. Firebase Auth はフューチャーさんの方で事例や検証などされたりしていますでしょうか?(Auth0 が最も事例がある感じでしょうか)もし Firebase Authの事例などがあれば、どのような基準で選んでいるのか回答頂けると助かります。
A. 私の周囲では、Keycloak、Auth0の採用が多いです。
理由の1つとして、SSOの実現が必須になるケースが多く、central authentication serviceの仕組みが欲しくなってしまう為ですFirebase Auth(は知識が不足しており、定かではありませんが)やAmplify(+cognito)は単一アプリで利用するには良い印象ですが、IDPとして使う為には、追加の実装が必要になるため、採用するケースが少ないように思います。
Q. Auth0を導入される際に比較されたIDaaS, 比較ポイントがもしあれば教えていただけないでしょうか。例えばOktaなどは比較されましたでしょうか?
A. 残念ながら、Oktaとの比較結果は持ち合わせておらず、申し訳ありません。
比較ポイントとして特殊なものは無く、機能、非機能、価格、開発の自由度で純粋に比較しています。機能であれば、SSOやAD/GSuiteなどとの統合、移行性、GDPRへの対応…etc
非機能であれば、認証スループット、可用性、データの所在…etc 等かと思います。
Q. IDaaSの選択肢として、Azure AD B2Cがどうか、私見で良いので聞きたいです。
A. 勉強不足で申し訳ありません。Azure AD B2Cは初見でしたので機能を見てみました。
Customize性(Rules/Hooks)、SDKの充実度などはAuth0が有利に見えますが、基本的な機能は揃っており、価格メリットがあれば十分選択肢になりうると思えました。
Q. Futureでの各サービスやOSSの採用事例とその際の選定基準などあればお聞きしたいです
A. プロジェクトによって、優先すべき内容が異なるため、決まった選定基準はありません。
基本的にはプロジェクト単位に定められた機能、非機能の要件で選定軸を作り、第三者レビューも通した上で採用プロダクトを決めています。
最後に
次の機会があれば、追加で他のプロダクトも比較してみたいです。
ありがとうございました。