メインコンテンツへスキップ
既定の Office 365 のセットアップには、Active Directory と DirSync/Azure AD Sync Services が含まれており、これらによって Azure AD 内の AD ユーザーが同期・プロビジョニングされ、 が実現されます。この構成では、Auth0 が となり、これらのユーザーにシングルサインオン (SSO) を提供します。 では、契約社員やパートナー、あるいは顧客に Office 365 環境 (たとえば SharePoint) へのアクセスを許可したい場合はどうでしょうか。この場合、既定の方法は最適ではありません。というのも、これらのユーザーを AD 環境内に作成する必要があるためです。代わりに、Auth0 Rules を使用して Azure AD ユーザーをカスタムプロビジョニングする必要があります。 カスタムプロビジョニングを使うと、Auth0 で利用可能な任意の接続からユーザーがログインしたタイミングで、Azure AD (ひいては Office 365) にユーザーを作成できます。 (この場合、DirSync では対応できない種類の接続については、Rule が DirSync の役割を引き継ぎます。) この構成により、Office 365 環境に対して、Facebook、LinkedIn、Google Workspace などさまざまなログインオプションを提供できます。

前提条件

カスタムプロビジョニングを設定する前に、以下を完了する必要があります。
  • Office 365 を設定する: を登録し、Auth0 で Office 365 をサードパーティ アプリケーションとして設定します。

Azure AD を設定する

カスタムプロビジョニングでは、Azure AD Graph API を使用して Azure AD に新しいユーザーをプロビジョニングします。Azure AD Graph API にアクセスするには、Office 365 サブスクリプションにリンクされている Azure AD Directory 内にアプリケーションを作成する必要があります。
  1. Azure Portal にログインします。
  2. 左側のナビゲーションで Azure Active Directory を選択します。
  3. 表示された新しいメニューで App registrations を選択します。
  4. New application registration をクリックします。
  5. フォームに入力します。
    1. アプリケーションの名前 (Auth0 Provisioning など) を入力します。
    2. Application type として Web app / API を選択します。
    3. サインオン URL を入力します。有効な URL であればどれでもかまいません。これは実際には使用されません。
  6. 新しく作成したアプリケーションが App registrations の一覧に表示されるので、それを選択します。
  7. Settings ブレード (Microsoft ではこれらのセクションを「blades」と呼びます) で、Keys を選択します。
  8. Description (Auth0 Provision など) を入力し、新しいキーの Duration を選択します。永続的でないキーを発行する場合は、有効期限を控えておき、期限切れになる前に新しいキーへ置き換えられるようリマインダーを設定してください。
  9. キーを保存してから、App Key をコピーします。このキーが表示されるのは 1 回だけで、Auth0 の Rule で必要になります。
  10. Required permissions を選択し、新しいブレードで Add をクリックします。
  11. Microsoft Graph API を選択し、Application Permissions の下で Read and write directory data をチェックします。
  12. Required permissions に戻り、Grant Permissions ボタンをクリックしてから、要求された権限を付与するため Yes をクリックします。

Azure AD プロビジョニング Rule を作成する

次の Rule は、プロビジョニングの流れを示しています。
  1. ユーザーが AD 接続から来ている場合は、プロビジョニング処理をスキップします (これは DirSync によって処理されるためです) 。
  2. ユーザーがすでに Azure AD にプロビジョニングされている場合は、そのままログイントランザクションを続行します。
  3. Azure AD のクライアントIDとキーを使用して、Graph API 用のアクセストークンを取得します。
  4. Azure AD にユーザーを作成します。
  5. ユーザーにライセンスを割り当てます。
  6. ログイントランザクションを続行します。
username は createAzureADUser 関数で生成され、既定では auth0-c3fb6eec-3afd-4d52-8e0a-d9f357dd19ab@fabrikamcorp.be 形式の username が作成されます。これは任意の値に変更できますが、すべてのユーザーで一意になるようにしてください。 構成オブジェクトで AUTH0_OFFICE365_CLIENT_IDAAD_CUSTOM_DOMAINAAD_DOMAINAAD_APPLICATION_IDAAD_APPLICATION_API_KEY に正しい値を設定し、それらの値を Rule コードで使えるようにしてください。詳細については、Rules の構成を保存する を参照してください。 コードを見ると、ユーザーがプロビジョニングされた後、Rule は約 15 秒待機することもわかります。これは、プロビジョニングされたユーザーが Office 365 で使用可能になるまでに数秒かかるためです。
このコードは新しいユーザーのプロビジョニング手順を示していますが、既存ユーザーのメタデータを同期するように変更することもできます。

ユーザーエクスペリエンス

外部ユーザーを認証させる最も簡単な方法は、IDプロバイダー主導型ログインを使用することです。 ユーザーを次の URL にリダイレクトする必要があります (例: https://office.travel0.com のような “スマートリンク” を使用) 。 これにより、まず Auth0 のログインページが表示され、その後 Office 365 にリダイレクトされます。Office 365 のログインページはこれらの外部ユーザーに対して Home Realm Discover をサポートしていないため、認証方法はこれだけであることを外部ユーザーに説明しておくことが重要です。つまり、ユーザーがリンクを開こうとした場合も、開こうとしたリンクにアクセスする前に、まず スマートリンク にアクセスする必要があります。 この例では、Travel0 は Auth0 で Office 365 のサードパーティアプリケーション向けに、いくつかのソーシャル接続と 1 つのデータベース接続を有効にしています。

ディープリンク

実装によっては、ディープリンク (たとえば SharePoint Online へのリンク) が必要になることがあります。この場合は、Office 365 のログインページを起点とするスマートリンクを作成する必要があります。
最初のパラメーター {yourCustomDomain} には、 用に Azure AD で設定したドメイン (例: travel0.com) を指定します。これを whr として指定すると、Azure AD はログインページを表示するのではなく、Auth0 にリダイレクトすべきだと判断します。 DEEP_LINK パラメーターには、Office 365 内のエンコード済み URL (たとえば、SharePoint Online や Exchange のページ) を指定します。 URL の例: