メインコンテンツへスキップ
Office 365のデフォルトのセットアップには、Active DirectoryとDirSync/Microsoft Entra ID同期サービスが含まれており、Entra ID(旧称Azure AD)にいるEntra IDユーザーを用に同期してプロビジョニングします。この構成では、Auth0がIDプロバイダーで、これらのユーザーにシングルサインオン(SSO)を提供します。 それでは、請負業者やパートナー、あるいは顧客に、自身のOffice 365環境(SharePointなど)へのアクセスを許可したい場合はどうすればよいでしょう?この場合、デフォルトの方法だとこれらのユーザーをEntra ID環境で作成する必要があるため、最適とは言えません。代わりに、Auth0 Rulesを使用してEntra IDユーザーのカスタムプロビジョニングを行う必要があります。 カスタムプロビジョニングをすると、Auth0で利用可能な任意の接続からログインするのと同様に、Entra ID(および事実上Office 365)でユーザーを作成できるようになります(この場合、ルールは、DirSyncが機能しないあらゆるタイプの接続にDirSyncのタスクを引き継ぎます)。この構成によって、Office 365環境で(Facebook、LinkedIn、Google、Workspaceを含む)さまざまなログインオプションを提供できるようになります。

前提条件

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

Microsoft Entra IDを構成する

カスタムプロビジョニングでは、Entra IDの新しいユーザーをプロビジョニングするためにMicrosoft Graph APIを使用します。Microsoft Graph APIにアクセスするには、Office 365のサブスクリプションにリンクされたMicrosoft Entra ID内にアプリケーションを作成する必要があります。
  1. Azureポータルにログインします。
  2. 左のナビゲーションにあるMicrosoft Entra IDを選択します。
  3. 新しいメニューで [App registrations(アプリの登録)] を選択します。
  4. [New application registration(アプリケーションの新規登録)] をクリックします。
  5. フォームに記入します。
    1. アプリケーションの名前(Auth0 Provisioningなど)を入力します。
    2. [Application type(アプリケーションの種類)][Web app / API(Webアプリ/API)] を選択します。
    3. サインオンURLを挿入します。任意の有効なURLを入力できますが、実際にはあまり使用されません。
  6. [App registrations(アプリの登録)] リストに最近作成されたアプリが表示されます。これを選択します。
  7. [Settings(設定)] ブレード(これらのセクションをMicrosoftでは「ブレード」と呼びます)で、 [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(はい)] をクリックすることで、要求されたアクセス許可を付与します。

Microsoft Entra IDのプロビジョニングルールを作成する

以下のルールはプロビジョニングのプロセスを示しています。
  1. ユーザーがEntra ID接続からの場合は、(DirSyncによって処理されるため)プロビジョニングプロセスをスキップする。
  2. ユーザーがすでにMicrosoft Entra IDでプロビジョニングされている場合は、ログイントランザクションを続ける。
  3. Microsoft Entra IDのクライアントIDとキーを使ってGraph APIのアクセストークンを取得する。
  4. Entra IDでユーザーを作成する。
  5. ユーザーにライセンスを割り当てる。
  6. ログイントランザクションを続ける。
ユーザー名はcreateAzureADUser関数を使って、デフォルトでauth0-c3fb6eec-3afd-4d52-8e0a-d9f357dd19ab@fabrikamcorp.beの形式で生成されます。この値は自由に変更できますが、すべてのユーザーで一意でなければなりません。 ルールコードで使えるように、構成オブジェクトのAUTH0_OFFICE365_CLIENT_IDAAD_CUSTOM_DOMAINAAD_DOMAINAAD_APPLICATION_ID、およびAAD_APPLICATION_API_KEYの値が正しく設定されていることを確認します。詳細については、「ルールの構成を保管する」をお読みください。 コードでは、ユーザーがプロビジョニングされた後にルールが約15秒待つこともわかります。これは、プロビジョニングされたユーザーがOffice 365で利用可能になるのに数秒かかるためです。
このコードは新規ユーザーのプロビジョニングプロセスを示すものですが、手を加えて既存ユーザーのメタデータの同期に使用することもできます。

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

外部ユーザーを認証する最も簡単な方法が、IDプロバイダー起点のログインです。 ユーザーを(たとえばhttps://office.travel0.comなどの「スマートリンク」を使用して)以下のURLにリダイレクトする必要があります。 これによって、ユーザーにAuth0のログインページが表示され、その後、Office 365にリダイレクトされます。外部ユーザーには、Office 365のログインページがこれらの外部ユーザーのホーム領域検出をサポートしていないため、この方法でしか認証できないことを説明することが重要です。これは、ユーザーがリンクを開こうとすると、開こうとしたリンクにアクセスする前に、スマートリンクに移動する必要があることも意味します。 この例では、Travel0がAuth0でサードパーティーアプリケーションのOffice 365にいくつかのソーシャルアカウントデータベース接続を有効にしています。

ディープリンキング

実装に(たとえば、SharePoint Onlineへの)ディープリンキングが必要になることがあります。その場合は、Office 365のログインページで開始するスマートリンクを構築してください。
最初のパラメーター、{yourCustomDomain}は、シングルサインオン(SSO)用にMicrosoft Entra IDで構成したドメイン(travel0.comなど)にします。これをwhrとして指定することにより、Microsoft Entra IDが、ログインページを表示する代わりにAuth0へのリダイレクトが必要だということを理解します。 DEEP_LINKパラメーターは、Office 365内でエンコードされたURL(SharePoint OnlineやExchangeのページなど)にします。 URLの例: