Organizations機能を使い始めるには、組織を作成して設定する必要があります。
Auth0 のプランによって利用可否が異なります
この機能が利用可能かどうかは、Auth0 のプランまたはカスタム契約によって異なります。詳しくは、Pricingをご確認ください。
organizationを作成すると、そこで定義した設定を使用して、エンドユーザーがorganizationのコンテキストで認証する際に表示されるログインページやメールテンプレートをカスタマイズできます。
Organizations を標準のまま使用する場合、これらの設定は ページの設定を上書きします。ログインページやメールテンプレートをさらにカスタマイズする方法については、プロンプトとメールテンプレートのカスタマイズを参照してください。
Heroku のように、ユーザーが個人アカウントでログインするか、ビジネスアカウントに関連付けられた organization を選択するかに応じて、動作が変わるアプリケーションをご存じかもしれません。Auth0 では、アプリケーション単位で同様の organization の動作を定義できます。
Auth0 で作成する各アプリケーションについて、エンドユーザーが直接ログインするか、organization のコンテキストで認証を必須にするかを決めることができます。ユーザーが organization 経由でログインする必要があるアプリケーションでは、ログインフローに organization が指定されていない場合の動作も指定できます。
また、組織のサブドメイン用プレースホルダー を含めるために、アプリケーション設定 の Allowed Callback URLs と Allowed Origins (CORs) を更新する必要がある場合もあります。
Organizations で Universal Login の標準プロンプトを使用している場合、組織を作成する際に設定したブランド設定が、Universal Login ページとメールテンプレートのブランド設定を上書きします。エンドユーザーが受け取る Universal Login ページやメールをさらに変更したい場合は、ページテンプレートとメールテンプレートをカスタマイズできます。
ページテンプレートをカスタマイズするには、カスタムドメインを使用する必要があります。これは、すべての有料プランで利用できる機能です。
Universal Login ページを変更するには、Liquid template language とテンプレート変数を使用してページテンプレートをカスタマイズし、Universal Login Page Templates API を使ってそのテンプレートを適用します。詳細については、Universal Login Page Templates を参照してください。
同じテンプレートがすべてのページで使われるため、最小限の手間で統一感のあるログインページを実現できます。
作成できる最もシンプルなテンプレートは、次のとおりです。
テンプレートには、次のタグが含まれている必要があります。
auth0:widget: すべてのページタイプ (例: Login、パスワードのリセット) で表示されるウィジェットの構造を定義するHTMLが含まれます。
auth0:head: ウィジェットをレンダリングするために必要なタグが含まれます。
ページ内でウィジェットを中央に配置するには、<body> タグを <body class="_widget-auto-layout"> に置き換えます。
エンドユーザーが受け取るメールを変更するには、Liquid template language とテンプレート変数を使用して、メールテンプレートをカスタマイズします。詳しくは、Customize Email Templates を参照してください。
以下のメールテンプレートは、組織向けにさらにカスタマイズできます。
- Welcome: エンドユーザーがメールアドレスを確認した時点、またはメールアドレスの確認が無効になっている場合はサインアップ時 (または初回ログイン時) に送信されます。
- Password Change: エンドユーザーがパスワード変更をリクエストしたときに送信されます。Password Reset ページにリダイレクトするリンクが含まれます。
- Invite User: エンドユーザーが organization に招待されたときに送信されます。設定済みのデフォルトのログインルートにリダイレクトするリンクが含まれます。詳しくは、Invite Organization Members を参照してください。
ページテンプレートとメールテンプレートでは、一連のコンテキスト変数にアクセスでき、これらを使ってテンプレートのレンダリング方法を制御できます。
使用可能な変数の一覧については、ページテンプレート変数は Universal Login Page Templates、共通のメールテンプレート変数は Customize Email Templates を参照してください。
ユーザーが organization を通じてログインした場合は、ページテンプレートで追加の変数を利用できます。
organization.id
organization.display_name
organization.name
organization.metadata
organization.branding.logo_url
organization.branding.colors.primary
organization.branding.colors.page_background
organization パラメーターがメールテンプレートで利用可能になるのは、関連するメールが organization のコンテキストでトリガーされた場合に限られます。たとえば、ユーザー招待メールは常に organization のコンテキストでトリガーされるため、そのテンプレートでは organization パラメーターを常に利用できます。一方、ウェルカムメールは organization のコンテキストでトリガーされる場合とされない場合があるため、そのテンプレートでは organization パラメーターを利用できないこともあります。
pre-login 時に、Auth0 はユーザーが入力した 組織名またはメールドメインに基づいて、そのユーザーの組織を検出できます。組織をドメインに関連付けるには、組織ドメインを作成します。すると Auth0 は、そのユーザーを正しい IDプロバイダー (IdP) に自動的にルーティングします。
注: ユーザーはログイン時に、引き続き完全なメールアドレスまたは 組織名を入力する必要があります。Auth0 はその情報を使用して、関連する組織を特定します。
テナント管理者は、Auth0 Dashboard の組織の Domains セクション、または Management API を使用して、ドメインを追加および管理できます。
Auth0 Dashboard でドメインを追加するには:
- Auth0 Dashboard > Organizations に移動します。
- 組織名を選択し、Domains を選択します。
- Add Domain を選択します。
- ドメインを入力します (例:
travel0.com) 。
- 検証が完了すると、ドメインは Verified として表示され、pre-login での組織検出に使用されます。
ドメイン検出で使用されるのは、検証済みドメインのみです。保留中または未検証のドメインでは、ルーティングはトリガーされません。
ドメイン検出がログイン時の動作にどのような影響を与えるかについて詳しくは、Login Flows for Organizations を参照してください。
各 organization にはそれぞれ関連付けられたメンバーがおり、organization に設定されたログインページを通じてログインすることで、アプリケーションにアクセスできるユーザーを表します。
SaaS アプリケーションや B2B アプリケーションは、通常、個々のユーザーではなくチームに提供されます。この文脈でのチームとは、会社全体、小規模な従業員グループ (たとえばマーケティング部門) 、あるいは特定の目的のために一時的に編成されたユーザーの集まり (たとえば、慈善団体を支援するために登録し、より多くの寄付金を集めようとチームで競い合う近隣住民のグループ) などを指します。
Auth0 の Organizations は、こうしたすべてのユースケースに対応できる十分な柔軟性を備えていますが、チームをサポートするアプリケーションを構築する際には、ある程度の計画が必要です。最初に検討すべきことの 1 つは、チームのメンバーシップをどのように管理するかで、次の方法で実現できます。
メンバーシップを定義したら、組織のメンバーを取得する または ユーザーの organization のメンバーシップを取得する ことができます。
各 organization のメンバーには 1 つ以上のロールを割り当てることができ、ユーザーがその organization を通じてログインした際に適用されます。具体的には、organization のメンバーにロールを追加したり、organization のメンバーからロールを削除したり、organization のメンバーのロールを取得したりできます。ロールとそれに関連付けられた権限を使用して、構築したアプリケーションへのアクセスを制御できます。ロールの詳細については、ロールベースのアクセス制御を参照してください。