Skip to main content
既定の Office 365 のセットアップには Active Directory と DirSync/Azure AD Sync Services が含まれており、これらによって Azure AD 上の AD ユーザーが同期・プロビジョニングされ、 が実現されます。この構成では、Auth0 が となり、これらのユーザーにシングルサインオン (SSO) を提供します。 では、業務委託先、パートナー、あるいは顧客にも Office 365 環境 (たとえば SharePoint) へのアクセスを許可したい場合はどうすればよいでしょうか。この場合、既定の方法は最適ではありません。というのも、これらのユーザーを AD 環境内に作成する必要があるためです。代わりに、Auth0 ルール を使用して Azure AD ユーザーをカスタムでプロビジョニングする必要があります。 カスタムプロビジョニングを使用すると、Auth0 で利用可能な任意の接続からユーザーがログインしたタイミングで、Azure AD (ひいては Office 365) にユーザーを作成できます。 (この場合、DirSync で対応できない種類の接続については、ルールが 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 をコピーします。このキーが表示されるのは一度だけで、Auth0 ルールで必要になります。
  10. Required permissions を選択し、新しいブレードで Add をクリックします。
  11. Microsoft Graph API を選択し、Application Permissions の下にある Read and write directory data にチェックを入れます。
  12. Required permissions に戻り、Grant Permissions ボタンをクリックしてから、要求された権限を付与するために Yes をクリックします。

Azure AD のプロビジョニングルールを作成する

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

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

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

ディープリンク

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