Auth0の概要記事。Auth0を構成する概念と連携例をまとめる。
Auth0とは
- Web・ネイティブアプリやAPIなどに対し、認証・認可ソリューションをクラウドで提供するIDaaS (Identity as a Service)。
Auth0の概念
Tenant(テナント)
-
Auth0のAssets(Application、Connection、User)を定義・管理、保管する論理分割単位。
-
Auth0を利用開始時に、アカウントと併せて作成。
Account(アカウント)
-
テナントを管理する主体。
-
テナントと同時に作成。
-
作成方法
- Email/Password登録
- GitHubアカウント
- Googleアカウント
- Microsoftアカウント
-
アカウント:テナント = N:N
-
1アカウントで複数のテナントを管理可能。
-
1テナントに複数のアカウントを紐づけることも可能。
-
Application(アプリケーション)
-
テナントに対してログインを要求できるクライアント。
-
以下に対応。
- Native/Mobile Application
- Single Page Web Application
- Regular Web Application
- Machine to Machine Application
-
テナント:アプリケーション = 1:N
- 例:サービスをiOSアプリ、Androidアプリ、Webアプリで提供する ⇒ 3アプリケーション用意。
Connection(コネクション)
-
ログイン手段
- メールアドレス/パスワード、Twitterアカウント、Googleアカウント、...
-
テナント:コネクション = 1:N
-
コネクション 説明 Database Connection Auth0もしくは自社DBで認証情報を管理
例:メールアドレス/パスワードSocial Login ソーシャルアカウントを利用
例:Google、Twitter、...Enterprise Directory エンタープライズ向け製品を利用
例:LDAP、Office365、G Suite、SAMLなどPasswordless System ワンタイムキーを利用
例:電話番号またはメールアドレス
User(ユーザー )
-
アプリケーションにログイン可能なユーザー。
-
コネクション配下に作成される。
- コネクション別に異なるユーザーとして扱う
- 同一ユーザーがTwitterでログインしたあと、別途Googleログインした場合、TwitterログインユーザーとGoogleログインユーザーは別ユーザーとして扱う。
- コネクション別に異なるユーザーとして扱う